Problem
TablePro ships non-core engines like DuckDB, MongoDB, and Oracle as plugins, but can't open Beancount ledgers — the most popular plain-text accounting format. A .beancount file is just dated transactions, postings, prices, and balances, and today it's only queryable through bean-query or the Fava web UI.
Proposed solution
Add a database-driver plugin for Beancount, like the DuckDB and MongoDB drivers, so the core app takes on no new dependency.
The plugin bundles rustledger; a fast, fully Beancount-compatible engine with no Python runtime, shipped as a native binary or WASM, and GPL-3.0 compatible with TablePro's AGPL-3.0. It:
- Loads the
.beancount file and its includes, watching for changes.
- Serves it as a read-only SQL database —
transactions, postings, accounts, prices, balances — so the editor, grid, filters, export, and ER diagram work unchanged.
- Registers the
.beancount file association.
For accounting-exact queries plain SQL can't express, like lot booking and capital gains, the driver can expose rustledger's BQL in the same grid.
Alternative
SwiftBeanCount is a pure-Swift, MIT alternative engine if a Rust dependency is unwanted.
Problem
TablePro ships non-core engines like DuckDB, MongoDB, and Oracle as plugins, but can't open Beancount ledgers — the most popular plain-text accounting format. A
.beancountfile is just dated transactions, postings, prices, and balances, and today it's only queryable throughbean-queryor the Fava web UI.Proposed solution
Add a
database-driverplugin for Beancount, like the DuckDB and MongoDB drivers, so the core app takes on no new dependency.The plugin bundles rustledger; a fast, fully Beancount-compatible engine with no Python runtime, shipped as a native binary or WASM, and GPL-3.0 compatible with TablePro's AGPL-3.0. It:
.beancountfile and its includes, watching for changes.transactions,postings,accounts,prices,balances— so the editor, grid, filters, export, and ER diagram work unchanged..beancountfile association.For accounting-exact queries plain SQL can't express, like lot booking and capital gains, the driver can expose rustledger's BQL in the same grid.
Alternative
SwiftBeanCount is a pure-Swift, MIT alternative engine if a Rust dependency is unwanted.