10 releases
0.3.1 | Apr 29, 2024 |
---|---|
0.3.0 | Apr 15, 2024 |
0.2.2 | Apr 9, 2024 |
0.1.6 | Apr 9, 2024 |
0.1.5 | Jan 24, 2024 |
#824 in Database interfaces
59KB
1.5K
SLoC
bean-rs
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
(Deliberate) differences from beancount
- Postings can't omit the currency
Use from Rust
Install
cargo install bean-rs
Run
$ 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
Calculate balances
bean-rs balance example.bean
Use from Python
More to come...
import bean_rs
ledger = bean_rs.py_load("example.bean")
print(ledger.opts)
Development
Build
make build
Test
make test
Dependencies
~8–14MB
~181K SLoC