Beancount, rewritten in Rust

Drop in Rust replacement
for Beancount

Accounting in plain text, under your control, forever.

$ curl -sSfL rustledger.github.io/i | sh
or cargo install rustledger
Star on GitHub ...

Try it in your browser

Powered by WebAssembly

Budget
Stocks
Crypto
Travel
Business
Errors
Query
⚡ Plugins
✓ Valid
Ready
Loading...

What is plain text accounting?

Your finances in simple text files you control forever.

Your data, your files

Simple .beancount files work with any text editor. No vendor lock-in, no subscriptions, no cloud required.

Git-friendly

Track every change with version control. See exactly what changed and when. Collaborate with diffs.

Future-proof

Text files from 1990 still work today. Your financial history will outlive any app or company.

10x
Faster
14
Built-in plugins
7
Booking methods
100%
Plain text

Why switch from Beancount?

Same syntax, same workflow, better tooling

Installation
Beancount
Python + pip
rustledger
Single binary
Parse 10k transactions
~2.5s
~0.25s
Browser/WASM
Not possible
Full support
Plugin system
Python only
Native + WASM

Your existing .beancount files work without changes

Same commands you know

$ bean-check ledger.beancount
$ bean-format --in-place ledger.beancount
$ bean-query ledger.beancount
$ bean-report ledger.beancount balances

Full BQL support

beancount> SELECT account, SUM(position)
...> WHERE account ~ "Expenses"
...> GROUP BY account
...> ORDER BY SUM(position) DESC

Everything you need

Full syntax support
All 12 directive types, cost specs, price annotations, arithmetic
Zero dependencies
Single binary, no Python or runtime required
14 built-in plugins
implicit_prices, auto_accounts, pedantic, and more
WASM plugins
Extend with WebAssembly for sandboxed custom logic
7 booking methods
STRICT, FIFO, LIFO, HIFO, AVERAGE, and more
30 error codes
Comprehensive validation with clear messages

Ready to switch?

One command. No configuration.

$ curl -sSfL rustledger.github.io/i | sh
or cargo install rustledger