Kosmonaut:锈迹斑斑的Web浏览器

2020-08-16 01:06:15

Kosmonaut是一款优先考虑速度和隐私的Web浏览器,可作为您在万维网上旅行的工具。

通往星星的道路陡峭而危险。但是我们并不害怕……太空飞行是不能停止的。

到目前为止,还不是很多。目前只支持非常有限的CSS子集,因此大多数网页将无法工作。然而,考虑到非常基本的HTML和CSS,Kosmonaut确实呈现了正确的内容-请参阅Kosmonaut对此代码的呈现,并与Firefox进行比较:

下面是Kosmonaut可以做的事情的总结,我目前正在做的事情,以及排在待办事项清单前面的事情。

将HTML和少量CSS解析为DOM和规则,级联CSS并应用于DOM。

Kosmonaut是使用Rust构建的,使用通过gl-rs的OpenGL绑定,用于窗口管理和OpenGL上下文创建的Glutin,用于HTML和CSS解析的Servo的html5ever和csparser,以及各种其他辅助库。

Kosmonaut目前不支持任何联网。要使用Kosmonaut呈现HTML和CSS,您可以改为运行刚刚构建的可执行文件,通过--files(或-f)标志传递任意数量的HTML和CSS文件。

对于布局测试,Kosmonaut将给定的HTML和CSS转换为布局树,并将其转储为文本。使用Insta对这些文本快照进行了验证。

如果您需要查看/更新快照,安装Cargo insta CLI工具会很有帮助,如下所示:

Kosmonaut目前的实现在很大程度上受到了Servo的启发,有时直接从它那里获取代码。因此,Kosmonaut获得了Mozilla Public License 2.0的许可。

科斯莫诺还从罗宾逊那里获得灵感。感谢mBrubeck关于浏览器引擎的精彩系列文章。

最后,Kosomonaut的DOM实现取自Kuchiki,并已稍作修改以满足我们的需要。