« raio-core reste sans IO. » C'est la règle unique.
Si un changement obligeait core à dépendre d'un réseau,
d'un système de fichiers, d'une horloge ou d'un runtime, il n'a pas sa
place là — mais dans une autre crate. Les points d'extension existent
pour ajouter de vraies capacités — stockage durable, transport,
règlement, profils QR spécifiques — sans jamais toucher à la couche
de confiance. core n'a ni réseau, ni système de
fichiers, ni horloge : elle reste déterministe, indépendante du
runtime, et trivialement fuzzable.
LedgerStore
Persiste le grand livre event-sourced — durable dès aujourd'hui via redb, pur Rust ; des crates communautaires SQL/Postgres sont bienvenues.
KeyDirectory
Résout un alias (ou un MSISDN) vers un compte — durable dès aujourd'hui via redb, pur Rust ; des crates communautaires SQL/Postgres sont bienvenues.
SettlementProvider
Déplace de l'argent réel. L'implémentation livrée est naïve, volontairement — les adaptateurs de production (PAPSS / RTGS / mobile money) sont à apporter.
Transport À venir
Le bus de messages entre participants, avec des adaptateurs ISO 20022 et GSMA Mobile Money — le point d'extension de l'interopérabilité, pas encore dans la v0.1.
Deux standards QR, une seule racine multi-devises.
Pix a popularisé le « scan to pay » avec le BR Code ; l'équivalent
interopérable est l'EMVCo QR. Les deux sont des TLV de style EMV avec
la même somme de contrôle CRC-16/CCITT-FALSE, livrés comme des codecs
séparés et autonomes (aucune dépendance à raio-core).
Pendant ce temps, Money transporte des unités mineures
entières et respecte le minor_scale() de chaque devise —
les zones franc CFA sans décimales (XOF, XAF, UGX, RWF, GNF) sont
traitées nativement, jamais forcées à travers une projection en
centimes.