
KoSmonaut ist eine Webbrowser -Engine, die als Fahrzeug für Ihre Reise über das World Wide Web dient.
Der Weg zu den Sternen ist steil und gefährlich. Aber wir haben keine Angst ... Raumflüge können nicht gestoppt werden.
- Yuri Gagarin
Bisher nicht viel. Derzeit wird nur eine sehr begrenzte Untergruppe von CSS unterstützt, sodass die meisten Webseiten nicht funktionieren. Angesichts sehr grundlegender HTML und CSS macht KoSmonaut jedoch die richtigen Dinge - siehe Kosmonauts Rendering dieses Codes im Vergleich zu der von Firefox:

Hier ist eine Zusammenfassung der Dinge, die Kosmonaut tun kann, Dinge, an denen ich gerade arbeite, und Dinge, die vor der Todo -Liste stehen.
writing-mode und direction 1: Orthogonale Strömungen (siehe Spezifikation) Nicht unterstützt. Der gemischte writing-mode im Allgemeinen (einschließlich paralleler Flows) ist derzeit idfy-ich empfehle einfach, * { writing-mode: <val> } zu verwenden. ↩
Kosmonaut wurde mit der Absicht geschaffen, die Entwicklung der Browser -Engine zu lernen. Das Projekt ist jetzt jedoch ein wenig gekommen, und ich habe über Nischen nachgedacht, auf die ich darauf hinarbeiten kann, Koosmonaut zu passen. Ich habe einige Gedanken zu potenziellen Nischen in diesem Thema geteilt und würde gerne auch Ihre Ideen hören.
Kosmonaut wird mit Rost unter Verwendung von OpenGL-Bindungen über GL-RS, Glutin für das Fenstermanagement und die Erstellung von OpenGL-Kontext, die HTML5ever und CSSPARSER für HTML- und CSS-Parsen von Servos und verschiedene andere Hilfsbibliotheken gebaut.
Aus Quelle bauen:
apt-get install ).pacman -Syu -Bit).cargo buildUm HTML und CSS mit KoSmonaut zu rendern, passieren entweder Dateien (HTML und optional CSS):
cargo run -- tests/websrc/rainbow-divs.html
oder eine URL:
cargo run -- https://twilco.github.io/assets/html/rainbow-divs.html
Um die Tests, sowohl Einheiten als auch Layout, auszuführen, führen Sie aus:
cargo test --all
Bei Layouttests verwandelt KoSmonaut das gegebene HTML und CSS in einen Kastenbaum, legt ihn aus und legt ihn als Text ab. Diese Text -Schnappschüsse werden mit Insta verifiziert.
Wenn Sie Layout -Schnappschüsse überprüfen / aktualisieren müssen, ist es hilfreich, das Cargo Insta CLI -Tool wie SO zu installieren:
cargo install cargo-insta
Kosmonaut kann auch Ref-Tests durchführen. Ref-Tests rendern zwei HTML-Dateien und vergleicht das Ergebnis Pixel-by-Pixel, um sicherzustellen, dass sie gleich sind. Dies ist nützlich in vielen Szenarien, z. B. bei der Prüfung, dass die Kurzstufen genauso wie ihre Langhandäquivalente.
Die aktuelle Implementierung von KoSmonaut ist stark von Servo inspiriert und nimmt manchmal den Code direkt davon ab. Somit ist Kosmonaut mit der Mozilla Public Lizenz 2.0 lizenziert.
Kosmonaut inspirieren sich auch von Robinson. Vielen Dank an Mbubeck für ihre großartige Reihe von Artikeln über Browser -Motoren.
Schließlich wurde die Implementierung von Kosomonauts DOM von Kuchiki entnommen und leicht geändert, um unseren Bedürfnissen zu entsprechen.