# bions-rust — les briques qu'on ne rebuild PLUS JAMAIS > **Principe RS-7 (16.08.2026)** : « dès qu'on build un truc, que plus personne > d'autre n'aie à le build — créer des blocs pour que la seule chose à faire > soit **l'optimisation**, pas de recréer la roue à chaque fois. » > > C'est le principe même du nexus et de RepoVerse : chaque bion est construit > **une fois**, depuis les principes, puis vit pour toujours. On ne le remplace > pas — on le **fork pour l'optimiser**. Pédagogie : [build-your-own-x](https://github.com/codecrafters-io/build-your-own-x) — chaque crate est réimplémenté **depuis les principes** (pas de wrapper de lib), en Rust 2021, **std-only**, zéro `unsafe`, avec des doc-comments français riches : chaque bion est aussi **un cours**. ## Les 6 bions (vague 1) | Bion | Quoi | Inspiration | État | |---|---|---|---| | [`bion-vc`](bion-vc/) | Horloges vectorielles + Multi-Value Register « fork visible » — l'algo de merge causal de `xion-relativiste-v0` | CRDT / Dynamo / papiers Lamport-Fidge-Mattern | ✅ tests verts | | [`bion-triplet`](bion-triplet/) | Le triplet d'Adressage Génératif : `(hash_générateur, coordonnées, hash_résidu)` — une donnée = une adresse dans un espace génératif | Adressage Génératif (spine cataploxion) / Kolmogorov | ✅ tests verts | | [`bion-tsoinlog`](bion-tsoinlog/) | Journal d'événements append-only rejouable — la primitive de la machine à tsoins | build-your-own *event log* / Kafka minimal | ✅ tests verts | | [`bion-kv`](bion-kv/) | Magasin clé-valeur append-only : log + index mémoire + compaction + CRC32 maison | build-your-own **database** (Bitcask) | ✅ tests verts | | [`bion-regex`](bion-regex/) | Moteur regex NFA de Thompson, simulation par ensembles d'états : temps **linéaire garanti**, jamais de backtracking exponentiel | build-your-own **regex** (Russ Cox) | ✅ tests verts | | [`bion-git`](bion-git/) | Mini-git : objets content-addressed blob/tree/commit, SHA-1 maison, branches — le bion du principe « fork = liberté » | build-your-own **git** | ✅ tests verts | Chaque crate a son `README.md` : quoi / pourquoi / exemple / liens build-your-own-x / **comment l'optimiser** (l'invitation au fork). ## Utiliser ```bash cargo test --workspace # tout doit être vert, toujours cargo test -p bion-regex # un seul bion cargo doc --workspace --open # le cours complet ``` ## Contribuer (le nexus) On ne recrée pas la roue : on **fork et on optimise**. 1. Fork le repo sur **git.j0bot.ch** (RepoVerse, le nexus) — la contribution passe par les repos du nexus, pas par GitHub. 2. **L'API publique est STABLE pour toujours** (rétrocompatibilité = dogme) : on optimise l'intérieur, on ajoute — on ne casse jamais un appelant. 3. Règles : Rust 2021, std-only, zéro `unsafe` non justifié, ≥8 tests unitaires par crate (cas limites inclus), doc-comments français. 4. Chaque README de crate se termine par « comment l'optimiser » : commence là. ## Vague 2 (candidats, liste build-your-own-x) - **bion-shell** — un shell minimal : parse, fork/exec, pipes, redirections (*build-your-own-shell*). - **bion-http-parser** — parseur HTTP/1.1 incrémental sans allocation inutile (*build-your-own-web-server*, la moitié parsing). - **bion-bencode / torrent** — codec bencode + métainfo torrent, la porte vers le P2P souverain (torrion/torrax) (*build-your-own-bittorrent*). - **bion-interpreter** — lexer → parser → tree-walking interpreter d'un petit langage (le chemin vers xerlang) (*build-your-own-programming-language*). Même contrat : depuis les principes, std-only, un cours dans les doc-comments, et une fois vert — plus jamais rebuild, seulement optimisé.