#finance-ledger #ledger #accounting #beancount #double-entry

rustledger-plugin

Beancount plugin system with 20 native plugins and WASM support

24 releases (9 breaking)

Uses new Rust 2024

0.11.0 Apr 3, 2026
0.10.1 Mar 13, 2026
0.9.1 Feb 18, 2026

#632 in Finance

Download history 116/week @ 2026-01-17 67/week @ 2026-01-24 42/week @ 2026-01-31 21/week @ 2026-02-07 106/week @ 2026-02-14 54/week @ 2026-02-21 65/week @ 2026-02-28 54/week @ 2026-03-07 11/week @ 2026-03-14 34/week @ 2026-03-21 78/week @ 2026-03-28 70/week @ 2026-04-04

199 downloads per month
Used in 4 crates

GPL-3.0-only

755KB
16K SLoC

rustledger-plugin

Beancount plugin system with 30 native plugins and WASM support.

Native Plugins

Plugin Description
auto_accounts Auto-generate Open directives
auto_tag Automatically tag transactions
box_accrual Accrual accounting for boxed periods
capital_gains_gain_loss Split capital gains into gain/loss accounts
capital_gains_long_short Split capital gains by holding period
check_average_cost Validate average cost bookings
check_closing Zero balance on account close
check_commodity Validate commodity declarations
check_drained Ensure accounts drained before close
close_tree Close descendant accounts
coherent_cost Enforce cost OR price (not both)
commodity_attr Validate commodity attributes
currency_accounts Auto-generate currency trading postings
effective_date Override posting date via metadata
forecast Generate recurring transactions
generate_base_ccy_prices Create base currency price entries
implicit_prices Generate prices from costs
leafonly Error on non-leaf account postings
noduplicates Detect duplicate transactions
nounused Warn on unused accounts
onecommodity Single commodity per account
pedantic Enable all strict validations
rename_accounts Rename accounts via metadata
rxtxn Link related transactions
sellgains Cross-check capital gains
split_expenses Split expenses across accounts
unique_prices One price per day per pair
unrealized Calculate unrealized gains
valuation Mark-to-market valuation
zerosum Group transactions that sum to zero

Additionally, document_discovery is available for auto-discovering document files from directories specified in option "documents".

Example

use rustledger_plugin::{NativePluginRegistry, run_plugin};

let registry = NativePluginRegistry::new();
let plugin = registry.get("auto_accounts")?;
let result = run_plugin(plugin, &directives)?;

Cargo Features

  • wasm-runtime (default) - WASM plugin support via Wasmtime
  • python-plugins - Run Python beancount plugins via WASI sandbox

License

GPL-3.0

Dependencies

~5–29MB
~438K SLoC