How does rustledger compare?
Plain text accounting tools at a glance.
| rustledger | Beancount | Ledger | hledger | |
|---|---|---|---|---|
| Language | Rust | Python | C++ | Haskell |
| Syntax | Beancount | Beancount | Ledger | Ledger |
| Validation | Strict | Strict | Optional | Optional |
| Validation (10k txns) | ~43ms | ~789ms | ~108ms | ~498ms |
| Balance Report | ~34ms | ~1046ms | ~63ms | ~538ms |
| Dependencies | None | Python + pip | None | GHC runtime |
| Booking methods | 7 | 7 | Manual | Manual |
| Plugins | 20 + Python | Python | No | No |
| WebAssembly | Yes | No | No | No |
Performance Benchmarks
Benchmarks run nightly on 10K transaction ledgers. View workflow →
Benchmark details
What's measured:
- Validation: Parse ledger + validate (balance assertions, account opens, etc.)
- Balance Report: Parse + compute all account balances
Memory efficiency: rustledger typically uses 3-5x less memory than Python beancount thanks to Rust's zero-cost abstractions and efficient data structures.
Run locally:
bash
# Quick comparison (requires nix)
nix develop .#bench
./scripts/bench.sh
# Criterion micro-benchmarks
cargo bench -p rustledger-core
cargo bench -p rustledger-parserSee BENCHMARKING.md for detailed benchmark documentation.