Beankeeper
Idiomatic, ergonomic library of primitives for professional double-entry accounting.
Core Invariant
Every [core::Transaction] enforces the fundamental accounting equation:
total debits must equal total credits.
Quick Start
use *;
// Create accounts
let cash = new;
let revenue = new;
// Build a balanced transaction
let txn = new
.debit
.unwrap
.credit
.unwrap
.post
.unwrap;
assert_eq!;
Crate Structure
- [
types] — Fundamental accounting types (amounts, currencies, accounts, entries) - [
core] — Transaction building, validation, and the general ledger - [
reporting] — Trial balances and account balance summaries - [
error] — Top-level error type aggregating all domain errors