As another data point: I load only ~8 years of my ledger (~20k entries); anything more is unusably slow. Even this subset takes 3–4 seconds on an Intel Core Ultra 7 / 16 GB, making editing with Fava open quite frustrating.
A faster implementation without Python overhead would be a major improvement, and would also finally make running Beancount as an LSP during editing feasible. On Tuesday, February 24, 2026 at 9:18:46 AM UTC-8 [email protected] wrote: > Hi Timothy, > > As a data point, I have a ledger with 59k directives, 113k postings and > 56k transactions covering a little over 13 years of data (I imported my > history when I moved to Beancount a few years ago). If I delete my > .picklecache file and start up bean-query (which processes my full ledger), > it takes 3.1s on my M4 Pro Mac mini (48GB of memory). While 3 seconds > doesn't sound like much, when you hit it over and over (say when doing EOM > recs), it does add notable friction. If I'm doing read-only work where it > can use the cache, it's better, but still 1.1s per invocation. > > -David > > On Tuesday, February 24, 2026 at 10:15:13 AM UTC-5 [email protected] > wrote: > >> Hi Moritz, two thoughts. First of all, can I query the ledger using >> TurboBean? And second of all, how large are your ledgers that processing >> takes a lot of time? I have kept a fairly detailed ledger for three years >> and any processing takes less than a tenth of a second. >> >> >> >> Sincerely, >> Timothy Jesionowski >> >> On Tue, Feb 24, 2026, 7:21 AM 'Moritz Drexl' via Beancount < >> [email protected]> wrote: >> >>> Hi all, >>> >>> I'd like to share a project I'm working on: A from-scratch >>> implementation of >>> Beancount that is fast and independent of the Python ecosystem. >>> >>> https://github.com/themoritz/turbobean >>> >>> *Why?* >>> >>> I love Beancount, but as my journal has grown, processing takes a >>> considerable >>> amount of time. I came across the Beancount Vnext: Goals & Design >>> <http://furius.ca/beancount/doc/v3> document >>> which talks about how to address this with re-implementing the core in >>> C++. And >>> since Martin has so little time working on Beancount these days, I >>> thought why >>> not work on this evolved version of Beancount myself? I added some of my >>> own >>> design ideas to the mix and the result is TurboBean. >>> >>> *Philosophy* >>> >>> My vision is to have this very minimalist and fast core Beancount >>> implementation that is not tied to any language or ecosystem. It has some >>> essentials included (in particular the LSP) to get started quickly but >>> then >>> mainly just interfaces with other languages via Protobuf. >>> >>> - Single binary, zero dependencies. You download one small binary and it >>> just >>> works — no Python environment, no pip, no virtualenvs. >>> - Instant processing. Even large journals are parsed and processed in >>> milliseconds. >>> - Plugins in Lua. Extend and customize processing without the overhead of >>> a full Python runtime. >>> - Interop with other languages. Just use templating to generate .bean >>> files. >>> Pipe the output of processed transactions into any other language via >>> Protobufs. >>> - LSP and formatter built in. Every editor gets first-class support out >>> of the >>> box — jump to account definitions, hover for balances, auto-completion >>> and >>> renaming for accounts/tags/links. >>> - Practical Web UI included. A built-in web server gives you basic >>> journal, >>> balance sheet, and income statement views to get started quickly. >>> Similar to >>> Fava. >>> >>> *Compatibility* >>> >>> TurboBean aims to be as compatible with existing .bean files as >>> possible. Most >>> files should work without changes. Where breaking changes exist, they >>> stem from >>> the redesigned booking system inspired by Vnext. The key changes are >>> described >>> in this document >>> <https://github.com/themoritz/turbobean/blob/master/docs/inventories.md> >>> . >>> >>> *Current Status* >>> >>> The project is at a point where I use the LSP for editing all my .bean >>> files >>> and the Web UI for basic reports. >>> >>> I plan to work next on Lua plugins, the formatter as well as Protobuf >>> output. >>> >>> The project is definitely still exploratory so it would be great to have >>> people >>> play with it, and get feedback on design decisions since that's always >>> the >>> toughest part. >>> >>> Best, >>> Moritz >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Beancount" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion visit >>> https://groups.google.com/d/msgid/beancount/a2b794df-0e57-4bbb-abe3-1df34db824e3n%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/beancount/a2b794df-0e57-4bbb-abe3-1df34db824e3n%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- You received this message because you are subscribed to the Google Groups "Beancount" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/beancount/6624c37f-b388-4557-97bc-fa6611dde223n%40googlegroups.com.
