
Kosmonaut est un moteur de navigateur Web créé pour servir de véhicule pour votre voyage à travers le World Wide Web.
La route vers les étoiles est raide et dangereuse. Mais nous n'avons pas peur ... les vols spatiaux ne peuvent pas être arrêtés.
- Yuri Gagarin
Jusqu'à présent, pas grand-chose. Seul un sous-ensemble très limité de CSS est actuellement pris en charge, donc la plupart des pages Web ne fonctionneront pas. Cependant, étant donné le HTML et le CSS très basiques, Kosmonaut rend les bonnes choses - voir le rendu de Kosmonaut de ce code, par rapport à celui de Firefox:

Voici un résumé des choses que Kosmonaut peut faire, des choses sur lesquelles je travaille actuellement et des choses qui sont vers l'avant de la liste des ToDo.
writing-mode et direction 1: flux orthogonaux (voir SPEC) non pris en charge. Le support writing-mode mixte en général (y compris les flux parallèles) est actuellement incertain - je recommande simplement d'utiliser * { writing-mode: <val> } . ↩
Kosmonaut a été créé avec l'intention d'apprendre le développement du moteur du navigateur. Cependant, le projet est venu un peu des façons maintenant, et j'ai pensé aux niches dans lesquelles je peux travailler pour installer Kosmonaut. J'ai partagé quelques réflexions sur les niches potentielles dans ce numéro et j'aimerais aussi entendre vos idées.
Kosmonaut est construit avec Rust en utilisant des liaisons OpenGL via GL-RS, Glutin pour la gestion des fenêtres et la création de contexte OpenGL, HTML5ever et CSSParser de Servo pour l'analyse HTML et CSS, et diverses autres bibliothèques auxiliaires.
Pour construire à partir de la source:
apt-get install ).pacman -Syu ).cargo buildPour rendre HTML et CSS avec Kosmonaut, soit passer des fichiers (HTML et éventuellement CSS):
cargo run -- tests/websrc/rainbow-divs.html
ou une URL:
cargo run -- https://twilco.github.io/assets/html/rainbow-divs.html
Pour exécuter les tests, à la fois l'unité et la mise en page, exécutez:
cargo test --all
Pour les tests de mise en page, Kosmonaut transforme le HTML et le CSS donné en arborescence de boîte, le disposent et le jette sous forme de texte. Ces instantanés de texte sont vérifiés avec Insta.
Si vous devez consulter / mettre à jour les instantanés de mise en page, il est utile d'installer l'outil de cargaison Insta CLI comme:
cargo install cargo-insta
Kosmonaut peut également exécuter des tests REF. Les tests REF rendent deux fichiers HTML et comparent le résultat pixel-by-pixel, garantissant qu'ils sont les mêmes. Ceci est utile dans de nombreux scénarios, tels que des tests que les scolareurs rendent la même chose que leurs équivalents à la main.
L'implémentation actuelle de Kosmonaut est fortement inspirée par le servo, en tirant parfois du code directement. Ainsi, Kosmonaut est autorisé à la Licence publique Mozilla 2.0.
Kosmonaut s'inspire également de Robinson. Merci à Mbrubeck pour leur grande série d'articles sur les moteurs de navigateur.
Enfin, la mise en œuvre du DOM de Kosomonaut a été tirée de Kuchiki et a été légèrement modifiée pour répondre à nos besoins.