Un navigateur web écrit de zéro en Rust, brique par brique. Chaque brique est un crate de ce workspace, testé contre les suites officielles (html5lib, WPT…) puis optimisé en mesurant.
| Brique | Dossier | État |
|---|---|---|
| Parser HTML (tokenizer, arbre DOM) | html/ |
✅ v0.1 : 100 % html5lib et WPT, plus rapide que html5ever |
Parser CSS : sélecteurs, couleurs, valeurs, @media, var() |
css/ |
✅ 8 338 / 8 338 tests officiels, sélecteurs identiques à Servo, propriétés, media queries et var() identiques à Chromium, tokenizer au niveau de cssparser |
| Cascade CSS : style calculé de chaque élément | style/ |
✅ identique à Chromium : 1 006 715 / 1 006 715 valeurs (22 propriétés) sur 5 vraies pages, shadow DOM compris ; au niveau de Stylo (Firefox) en vitesse |
| Mise en page : blocs et texte | layout/ |
🚧 identique à Chromium sur les pages de test (292 / 292 boîtes de blocs, 187 / 187 avec texte) ; flottants, flexbox, tableaux à venir |
| Polices : lecture TrueType/OpenType, mesure du texte, crénage | font/ |
🚧 mesures identiques à Chromium (495 / 495) ; ligatures et dessin des glyphes à venir |
| Rendu, réseau, JavaScript… | — | à venir |
git clone --recurse-submodules https://github.com/HarpeLm/lumen.git
cd lumen
cargo test # tous les tests de toutes les briquesChaque brique a son propre README (tests, benchmarks, limites) : html/README.md.
Au choix : Apache 2.0 ou MIT. Sauf mention contraire, toute contribution proposée pour inclusion dans ce projet est placée sous cette même double licence, sans condition supplémentaire.