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.

Reply via email to