
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,并经过了稍微修改以满足我们的需求。