À propos du projet

ZeroWeb est un projet de navigateur multiplateforme expérimental implémenté en Rust, dont le dépôt maintient deux lignes de produits : la bibliothèque ZeroWebView, intégrable et réutilisable, et l'application complète ZeroBrowser. Le projet se positionne comme privilégiant l'intégration, les limites de licence (les dépendances principales tendent vers des licences permissives telles que MIT, Apache-2.0, BSD) et une approche full-stack en Rust. Le DOM, le CSS, la mise en page, le rendu, la navigation et les frontières de sécurité sont construits couche par couche au sein du dépôt, plutôt que d'utiliser un noyau existant. L'architecture adopte une séparation multi-processus : zero-browser ne conserve que la fenêtre, l'interface du navigateur, le proxy réseau et l'importation/présentation des trames IPC. Le rendu des pages et l'exécution des scripts sont assurés par zero-renderer, tandis que le décodage d'images et la composition sont respectivement confiés aux sous-processus zero-image-decoder et zero-compositor. La version publiée par défaut ne lie pas WebView, le bac à sable de scripts ou le moteur JS dans le processus du navigateur ; le débogage headless effectue également la navigation, les scripts et les captures d'écran via l'IPC du renderer. L'espace de travail comprend 32 membres, dont 22 crates de bibliothèques, 7 points d'entrée d'application, ainsi que des outils de test et de développement. La couche JavaScript des pages est fournie par script-sandbox avec un feature gate pour les doubles moteurs V8/QuickJS, couvrant Web Worker et ES Modules, et pontant automatiquement l'API JS de WebAssembly vers wasm-sandbox. Les liaisons DOM natives de V8 sont activées par défaut, incluant la propagation et le bouillonnement des événements natifs, le cycle de vie de customElements/Web Components, la réalisation de fetch, divers rappels d'observateurs ainsi que le support des contrôles de formulaire et des sélecteurs. Le volet média propose le demux webm/Matroska, le décodage VP9 en Rust pur, des décodeurs AV1 et H.264 optionnels, des pilotes de lecture audio et VideoPlayer, un bus de mixage et une surface minimale Web Audio. Les capacités de stockage et hors ligne couvrent localStorage, sessionStorage, IndexedDB, caches/Cache API, et implémentent le cycle de vie de Service Worker et l'interception fetch respondWith, tandis que la réalisation de OPFS est toujours en cours. Le côté sécurité comprend l'implémentation de CSP, le préchargement HSTS, le blocage et la mise à niveau du contenu mixte, le modèle de permissions et l'isolation des sites. L'accessibilité débute avec FocusManager et ARIA ; l'édition HTML, l'interaction clavier et la compatibilité des comportements de formulaire progressent également comme des lignes de développement indépendantes. Côté ingénierie, le projet fournit un service W3C WebDriver (34 endpoints, incluant les captures d'écran et les tests d'intégration de bout en bout), une mesure de compatibilité de rendu basée sur les reftest de WPT/CSSWG (le README indique un alignement d'environ 87,2 % avec le corpus reftest amont, utilisant le taux de cohérence des pixels de Chromium Oracle comme indicateur honnête), des barrières de régression de pixels pour les pages statiques du produit, ainsi que des scripts d'emballage pour Linux/macOS/Windows et un bootstrap Android M0. Le projet est explicitement marqué comme étant en phase expérimentale, principalement destiné à l'apprentissage, la recherche et l'exploration technique, et n'est pas adapté pour une utilisation quotidienne ou productive ; la licence est MIT. C'est également une expérience d'ingénierie AI-first, où le développement du code est principalement réalisé par l'IA, les humains étant responsables de la conception des solutions, des décisions critiques et de la vérification des résultats.