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/closedirectives - Validate
balancedirectives - 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 versionbean-rs balance example.beanMore to come...
import bean_rs
ledger = bean_rs.py_load("example.bean")
print(ledger.opts)make buildmake test