zakat-sqlite
SQLite persistence layer for Zakat ledger and event storage.
Overview
zakat-sqlite provides durable storage for:
- Ledger events and wealth snapshots
- Hawl tracking state
- Historical Zakat calculations
- Portfolio persistence
Usage
use SqliteStore;
use LedgerEvent;
// Initialize store
let store = open.await?;
// Store an event
store.save_event.await?;
// Query events
let events = store.events_between.await?;
Schema
The crate automatically manages schema migrations:
(
id TEXT PRIMARY KEY,
event_type TEXT NOT NULL,
timestamp TEXT NOT NULL,
payload TEXT NOT NULL,
created_at TEXT NOT NULL
);
(
id TEXT PRIMARY KEY,
date TEXT NOT NULL,
total_wealth TEXT NOT NULL,
asset_breakdown TEXT NOT NULL
);
Integration with Ledger
use SqliteStore;
use Timeline;
// Load timeline from database
let store = open.await?;
let events = store.all_events.await?;
let mut timeline = new;
for event in events
Connection Pooling
For high-concurrency applications:
use SqliteStore;
let store = with_pool_size.await?;
Dependencies
sqlx- Async SQLite drivertokio- Async runtime
License
MIT