Conception

« 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.

Codecs et devises

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.