How harisr92/accounting-blue works
Accounting Core is a Rust library for double-entry bookkeeping, Indian GST calculations, financial reports, and reconciliation of ledger activity against external statements. Its main workflow is an application creating accounts and recording validated transactions through the ledger, then querying balances and reports. Reconciliation is a separate caller-orchestrated workflow: the application obtains ledger transactions and parsed statement records, passes both to the synchronous matching engine, and may persist the resulting report. The README documents additional report types; sampled implementation detail is strongest for ledger orchestration, GST calculations, and reconciliation boundaries.
Main entry points: engine.rs Matching Engine · core.rs Ledger API · traits.rs Ledger Storage Trait · transaction.rs Transaction Processing
Components 20
Ledger
- Ledger API
src/ledger/core.rs - Account Management
src/ledger/account.rs - Transaction Processing
src/ledger/transaction.rs - Validation Rules
src/utils/validation.rs - Ledger Storage Trait
src/traits.rs - Memory Storage
src/utils/memory_storage.rs - Accounting Types
src/types.rs
Financial Reporting
- Financial Reports
src/ledger/core.rs
GST
- GST Calculator
src/tax/gst.rs - GST Invoices
src/tax/gst.rs
Reconciliation
- Reconciliation Caller
- Ledger Transactions
src/reconciliation/types.rs - Statement Data
- Statement Parser
src/reconciliation/storage.rs - Matching Engine
src/reconciliation/engine.rs - Matching Config
src/reconciliation/config.rs - Similarity Scoring
src/reconciliation/similarity.rs - Reconciliation Report
src/reconciliation/types.rs - Reconciliation Storage
src/reconciliation/storage.rs
Other components
- Accounting Application
Connections 22
- Accounting Application → Ledger API: calls
- Ledger API → Account Management: delegates account work
- Ledger API → Transaction Processing: delegates transactions
- Account Management → Ledger Storage Trait: reads and writes
- Transaction Processing → Ledger Storage Trait: reads and writes
- Transaction Processing → Validation Rules: validates
- Ledger Storage Trait → Memory Storage: implemented by
- Accounting Application → GST Calculator: requests calculations
- GST Calculator → GST Invoices: calculates line items
- Accounting Application → Financial Reports: requests reports
- Financial Reports → Ledger API: queries ledger data
- Reconciliation Caller → Ledger Storage Trait: loads ledger records
- Reconciliation Caller → Statement Parser: requests parsing
- Statement Data → Statement Parser: parsed from
- Reconciliation Caller → Matching Engine: passes both sides
- Reconciliation Caller → Ledger Transactions: projects ledger legs
- Statement Parser → Reconciliation Caller: returns transactions
- Matching Engine → Matching Config: uses thresholds
- Matching Engine → Similarity Scoring: scores candidates
- Matching Engine → Reconciliation Report: produces report
- Reconciliation Caller → Reconciliation Storage: loads and saves reports
- Reconciliation Caller → Reconciliation Storage: persists result