Conformité aux standards
Le moteur de Nordstjernen implémente 141 lignes du spec HTML en totalité et 31 lignes partiellement, couvrant les sections 1 à 16 du WHATWG. Lors des Web Platform Tests d’octobre 2026, le navigateur réussit 91,5 % des sous‑tests HTML/DOM/URL (151 974 / 166 164) et 73,2 % des sous‑tests CSS (110 540 / 151 048). Aucun élément ou API n’est totalement absent, chaque fonctionnalité est soit complète, soit partielle, soit explicitement exclue.
Architecture sécurisée et minimaliste
Nordstjernen adopte un modèle process‑per‑tab : chaque onglet s’exécute dans un processus de rendu sandboxé, communiquant avec l’interface via IPC et mémoire partagée. Sous Linux, le rendu est limité par seccomp et Landlock, sous macOS par le profil Seatbelt, et sous Windows par les politiques de mitigation de processus. L’absence de JIT, tant pour JavaScript que pour WebAssembly, réduit la surface d’attaque. Le code du cœur moteur compte ≈ 245 000 lignes C, excluant les bibliothèques tierces, ce qui rend possible une lecture et un audit complet par un seul développeur.
Performances et optimisation
Le rendu texte s’appuie sur ns‑pango, un fork de Pango qui met en cache les chaînes de glyphes et les métriques de police. Sur une page riche en tableaux, ce cache satisfait 92 % des requêtes de mise en forme et diminue le temps de layout de 24 %. La recherche par expression régulière ignore les positions impossibles, suivant la même logique que V8 Irregexp. Le navigateur charge la page Acid3 en 2,2 s contre 15,5 s pour la version précédente, grâce notamment à la mise à jour HTTP/3 via le cache alt‑svc. Le décodage vidéo s’appuie sur les décodeurs du système : VP9, AV1 et HEVC via GStreamer, H.264 préféré lorsqu’il est disponible nativement.
nordstjernen --mcp
# Lance le serveur MCP intégré pour contrôler le navigateur à distanceÉvolution vers Rust avec Southstar
Southstar représente la réécriture du code C en Rust. En octobre 2026, le projet ne contient plus aucune ligne C propre ; le moteur JavaScript utilise Boa, un interpréteur Rust sans JIT. Le code Rust totalise ≈ 330 000 lignes réparties sur 145 crates. Cette migration conserve la même conformité aux standards tout en bénéficiant du modèle de possession de Rust, qui élimine les classes classiques de vulnérabilités mémoire. Les performances vidéo restent identiques, le décodage H.264 sous Windows s’appuyant toujours sur Media Foundation.