Skip to content

A new implementation of Beancount using Rust and Clojure and the Lima parser

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

tesujimath/limabean

Repository files navigation

limabean

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!

Import

For a new approach to import see limabean-harvest.

Balance assertions

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.

Plugins

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.

Implicit Prices

The existing plugin beancount.plugins.implicit_prices is built in.

Auto Accounts

The existing plugin beancount.plugins.auto_accounts is not yet supported, but will be implemented as a built-in plugin.

Balance Rollup

As described above, the plugin limabean.balance_rollup modifies the behaviour of the balance directive.

Contributions

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.

License

Licensed under either of

at your option.

About

A new implementation of Beancount using Rust and Clojure and the Lima parser

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published