Crate map
Eight crates, one root of trust.
Each crate compiles and is published independently — depend on just
raio-core for the types, or pull in the ledger, directory,
and codecs as needed. The QR codecs are standalone (no raio-core
dependency); a QR's currency is an ISO 4217 numeric string, mapped to
Money by higher layers.
Root of trust
raio-core
IO-free root of trust: a currency-aware
Money (the major African currencies, incl. zero-decimal CFA franc zones), typed ids, keys, TxState, the SettlementProvider trait.QR codecs — pure and fuzzable
raio-brcode
Pix BR Code codec (EMV TLV + CRC16-CCITT). The learning reference — "copia e cola".
raio-qr
EMVCo QR codec (Merchant-Presented Mode + CRC16-CCITT). The interoperable QR — the global standard M-Pesa, MTN MoMo, Orange Money, G-Money & NIBSS use.
Trait seams + in-memory reference impls
raio-ledger
Double-entry, append-only, event-sourced ledger + the
LedgerStore trait.raio-dict
Key directory (alias → account) + the
KeyDirectory trait.Shipped durable backends — the seams, proven out
raio-ledger-redb
Durable
LedgerStore on pure-Rust redb — no C toolchain. The first real backend.raio-dict-redb
Durable
KeyDirectory on pure-Rust redb — no C toolchain. The DICT backend.raio-examples
Not published —
NaiveSettlement + the settlement_demo used in the video on the home page.