Principe RS-7 : « dès qu'on build un truc, plus personne n'a à le rebuild —
la seule chose à faire est l'optimisation. » (nexus/RepoVerse)
- bion-vc : horloges vectorielles + MvReg fork-visible (LA spec
xion-relativiste-v0 enfin codée — CRDT testé par permutations)
- bion-triplet : l'Adressage Génératif (gen_hash BLAKE3, coords, résidu ;
résidu vide quand déjà-su ; align décidable au bit)
- bion-tsoinlog: journal append-only rejouable (CRC32 maison, crash-recovery)
- bion-kv : magasin clé-valeur bitcask (compaction atomique, tombstones)
- bion-regex : moteur Thompson NFA linéaire (jamais exponentiel — Russ Cox)
- bion-git : mini-git content-addressed (SHA-1 maison + vecteurs officiels,
branches divergentes = le fork visible)
129 tests verts, clippy 0 warning, doc française = chaque bion est un cours.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
63 lines
3.7 KiB
Markdown
63 lines
3.7 KiB
Markdown
# 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é.
|