Hi everyone,
I'd like to share rustledger, a pure Rust implementation of Beancount. It's a drop-in replacement for bean-check, bean-query, and bean-format - your existing .beancount files work unchanged.
Performance:
| Tool | 10K transactions |
|---|---|
| rustledger | 34ms |
| Beancount | 880ms |
| hledger | 534ms |
| ledger | 114ms |
That's 25x faster than Python beancount (also faster than ledger too, what?!?)
Zero dependencies: Single binary, no Python runtime required. Download and run.
WebAssembly: rustledger compiles to WASM, enabling:
- Browser-based validation and queries (no server needed)
- Sandboxed plugin execution
- Embedding in Electron/Tauri apps
- CI/CD pipelines without heavy runtimes
Try the rustledger playground in your browser: https://rustledger.github.io/
Full compatibility:
- 100% compatibility on 759 real-world test files
- Full BQL query support
- 20 built-in plugins (auto_accounts, implicit_prices, etc.) in Rust
- Supports Python Plugins too through secure wasm interface.
- 7 booking methods (STRICT, FIFO, LIFO, HIFO, AVERAGE...)
- LSP for editor integration
Links:
Looking for testers!
The project is actively seeking people to try rustledger on real-world ledgers. Compatibility reports and edge cases are incredibly valuable - please open an issue or start a discussion if you hit anything unexpected.
Cheers