手动构建一个Web引擎需要数百名工程师和多年时间,因此只有少数公司能拥有自己的引擎。这是Bez项目对浏览器行业格局的判断,也是它试图打破的前提。

这个项目的思路是:不再手动编码,而是直接生成引擎。它从规范出发,以三款主流浏览器相互校验,再加上Web平台测试(WPT)作为测试标准。

打开网易新闻 查看精彩图片

一条自动化的引擎生成流水线

Bez使用了一种流水线,通过AI模型从规范中生成候选代码,再结合Chromium、Firefox、WebKit以及Web平台测试进行验证。生成出来的代码是Rust。

当规范或测试发生变化时,受影响的代码会被重新生成并重新验证,而不是手动重写。这套机制把“跟进标准”从人力活变成了流程活。

只保留用得上的功能

Bez专注于“树摇优化”后的引擎,仅包含特定网站所使用的功能。与完整的Chromium构建版本相比,其二进制文件更小,内存占用更低,速度也更好。

换句话说,一个网站用不到的能力,不会被塞进引擎里。这个取舍直接指向了体积和性能。

用逻辑编程处理复杂布局

目前的进展包括布局规则、CSS的生成,以及使用逻辑编程(Datalog)处理外边距合并等复杂任务。

在Datalog的帮助下,项目成功捕获了纯几何检查可能会遗漏的Bug。外边距合并这类布局逻辑,恰恰是几何层面的检查容易漏掉的地方。

Bez的目标是创建一个轻量级且易更新的Chromium替代方案,用自动化流程去克服构建浏览器引擎的高成本和复杂性。这条路能不能走通,取决于生成代码在三款主流浏览器和WPT面前能撑多久。