These guides document how beancount_ex is implemented: parsing, rendering,
engines, storage, testing, and oracle comparison. Use them when contributing to
the library or swapping execution backends.
If you are building an application or accounting UI, start with the Accounting guides instead.
Parsing and rendering
- Parsing -
Beancount.Parser, grammar, directives - Rendering -
Beancount.Renderer, deterministic output
Execution
- Engines -
Beancount.Enginebehaviour, CLI vs native - Booking - inventory booking in the native engine
- Querying - BQL and
Beancount.Query - Reporting -
Beancount.Reporthelpers - Queries - Ecto.Query for ad-hoc database queries
- Storage - Ecto storage, SQLite, import/export
Quality
- Golden files - fixture regression tests
- Property testing - generative ledgers
- Oracle strategy - long-term equivalence plan
- Reconciliation -
example.beancountharness - Performance - benchmarks