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.
