Project paused until this PR in PyO3 (or something similar) gets merged.
Basic beancount clone (one day...) in Rust!
Still very very alpha and doesn't do most things that are necessary to be at all useful.
Python bindings are a WIP using PyO3;
The libraries:
- Rust: crates/bean-rs
- Python: pypi/bean-rs
Planned features:
- Parse beancount files using pest
- Stricter transaction keywords
- Propagate line numbers for debugging
- Calculate account balances
- Use proper Decimal handling
- Validate transactions against
open
/close
directives - Validate
balance
directives - Pad statements
- Open/close with multiple currencies
- Add Python bindings
- Support
includes
- Come up with a more punny name
- Currency conversions
- Price/cost and FIFO
- Postings can't omit the currency
cargo install bean-rs
$ bean-rs
Usage: bean-rs <COMMAND>
Commands:
balance Display account balances
check Check for errors and quit
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
bean-rs balance example.bean
More to come...
import bean_rs
ledger = bean_rs.py_load("example.bean")
print(ledger.opts)
make build
make test