Skip to content

feat: add a Beancount driver plugin to open .beancount ledgers #1474

@salmonumbrella

Description

@salmonumbrella

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:

  1. Loads the .beancount file and its includes, watching for changes.
  2. Serves it as a read-only SQL databasetransactions, postings, accounts, prices, balances — so the editor, grid, filters, export, and ER diagram work unchanged.
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions