
Kosmonaut是一款Web瀏覽器引擎,旨在用作您在全球範圍內旅行的工具。
通往星星的道路陡峭而危險。但是我們不害怕...太空飛行無法停止。
- 尤里·加加林(Yuri Gagarin)
到目前為止,還不多。目前僅支持CSS的一個非常有限的子集,因此大多數網頁都無法使用。但是,鑑於非常基本的HTML和CSS,Kosmonaut確實呈現正確的事情 - 與Firefox相比,請參見Kosmonaut對此代碼的渲染:

這是Kosmonaut可以做的事情的摘要,我目前正在從事的事情以及朝向ToDo列表前部的事物。
writing-mode和direction屬性 1:不支持正交流(請參閱規格)。通常,混合writing-mode支持(包括平行流)當前是IFFY的 - 我建議簡單地使用* { writing-mode: <val> } 。 ↩
Kosmonaut的創建是為了學習瀏覽器發動機開發。但是,該項目已經有了一些方面的發展,我一直在考慮可以將Kosmonaut納入適合Kosmonaut的壁ni。我在這個問題上分享了一些關於潛在利基市場的想法,也很想听聽您的想法。
Kosmonaut是使用GL-RS的OpenGL綁定,用於窗口管理和OpenGL上下文創建的Rust構建的,Servo的HTML5Ever和CSSParser用於HTML和CSS解析以及其他各種輔助庫。
從來源構建:
apt-get install位)。pacman -Syu位)上安裝此Dockerfile中發現的依賴項。cargo build要使用Kosmonaut渲染HTML和CSS,請通過文件(HTML和可選的CSS):
cargo run -- tests/websrc/rainbow-divs.html
或URL:
cargo run -- https://twilco.github.io/assets/html/rainbow-divs.html
要運行單元和佈局的測試,請執行:
cargo test --all
對於佈局測試,Kosmonaut將給定的HTML和CSS轉換為盒子樹,將其放置並將其倒入文本。這些文本快照已通過Insta驗證。
如果您需要查看 /更新佈局快照,那麼安裝貨物Insta CLI工具很有幫助:
cargo install cargo-insta
Kosmonaut也可以進行參考測試。參考測試渲染兩個HTML文件,並比較結果像素的結果,以確保它們相同。這在許多情況下很有用,例如測試速記的呈現與長距離等效物相同。
Kosmonaut的當前實現受到了伺服的啟發,有時直接從中獲取代碼。因此,Kosmonaut獲得了Mozilla公共許可證2.0的許可。
Kosmonaut還從魯濱遜那裡獲得了靈感。感謝Mbrubeck在瀏覽器引擎上發表的一系列文章。
最後,Kosomonaut的DOM實施取自Kuchiki,並經過了稍微修改以滿足我們的需求。