This is a new implementation of Beancount using Rust and Clojure and the Lima parser.
Rust is purely used for backend processing, and has no visbility to end users beyond the build process. The idea is to use Clojure for interactive Beancounting instead of Beancount Query Language and Python. The Clojure REPL will provide all interactivity required.
There is no intention for limabean to support either Beancount Query Language or Python.
Some pre-canned queries are likely to be provided as command line options, but the main interactive experience is intended to be within the Clojure REPL.
This is a work-in-progress. Check back early in the new year!
For a new approach to import see limabean-harvest.
A point of difference from classic Beancount is that balance assertions may be configured to assert the total for an account an all its subaccounts, using
the internal plugin limabean.balance_rollup. For example, if a bank account holds multiple logical amounts, they may be tracked as subaccounts, without violating
balance assertions.
Padding is only ever performed on the actual account asserted in the balance directive, never on its subaccounts.
Unless the plugin is enabled, the default behaviour is not to do this.
limabean does not (yet) support externally provided plugins. The intention is that all desired behaviour may be implemented by the end user in Clojure. It remains to be seen whether auto-loading of Clojure plugins will be a useful feature.
That said, there are a handful of internal plugins, as follows.
The existing plugin beancount.plugins.implicit_prices is built in.
The existing plugin beancount.plugins.auto_accounts is not yet supported, but will be implemented as a built-in plugin.
As described above, the plugin limabean.balance_rollup modifies the behaviour of the balance directive.
While issues are welcome and I am particularly interested in making this generally useful to others, given the current pace of development I am unlikely to be able to accept PRs for now.
Licensed under either of
at your option.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |