rustledger-query
Beancount Query Language (BQL) engine with SQL-like syntax.
Supported Syntax
SELECT account, SUM(position)
WHERE account ~ 'Expenses:'
GROUP BY account
ORDER BY SUM(position) DESC
LIMIT 10
Features
- Full BQL support (SELECT, FROM, WHERE, GROUP BY, ORDER BY, LIMIT)
- Regex pattern matching (
~operator) - Aggregate functions (SUM, COUNT, FIRST, LAST, MIN, MAX)
- Date functions (YEAR, MONTH, DAY, QUARTER)
- String functions (LENGTH, UPPER, LOWER)
- Subqueries and PIVOT tables
Example
use ;
let query = parse_query?;
let results = execute?;
for row in results
License
GPL-3.0