ledgr-0.1.0 is not a library.
ledgr
A terminal UI app for personal finance. ledgr reads downloaded bank
statements, pension statements, and similar files, builds a local database,
and helps you analyze your money — categorization, trends, net worth over
time — without sending your data anywhere.
Status
Early scaffold. Not yet functional.
Design
- Storage: SQLite (via
rusqlite, bundled — no externalsqlite3dependency needed). Relationships that don't fit a strict tabular shape (transfers between accounts, category hierarchies, refund/reversal links) are modeled as edge tables rather than reaching for a dedicated graph database — seesrc/db/schema.sql. - Single crate: domain model, database access, statement import,
analysis, and the TUI all live in one
ledgrcrate/binary for now. See ADRdoc/adr/0003-single-crate-package-ledgr.md— split back into a library + binary later if/when a web frontend needs to reuse the domain logic without the TUI. - TUI:
ratatui+crossterm. - Import: statement parsers implement the
StatementParsertrait insrc/import, so adding a new bank's CSV/OFX format is a matter of writing one new parser.
Development
Roadmap
- Parse common UK bank CSV export formats
- Parse pension/investment statement formats (PDF? OFX?)
- Transaction categorization (rule-based, then inference-assisted)
- Net worth / spending trend views in the TUI
- Web frontend for richer visualizations, extracting the domain logic back into its own crate
- Publish
ledgrto crates.io
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.