Servo基金会发布了0.4.0版本,收录了2026年6月落地的全部改动。官方博客给出的数字是558次提交,比4月的534次、5月的391次都高,是这个项目自2023年9月重新起步以来提交最密集的一个月。博客还顺手提了一句:月度提交量已经比起步时涨了四倍多。同一次更新里,Servo补上了SharedWorkerCustomElementRegistry、一整套触摸事件API,以及device-widthaspect-ratiohover等长期缺失的CSS媒体查询——这些都是现代网页离不开的基础能力,迟到但终于来了。

但把这份清单当成"Servo快要能用了"的信号,可能想多了。Servo自己维护的WPT(Web Platform Tests)进度看板,截至4月的快照,整体通过率是65.6%(按测试计分)、93.1%(按子测试计分)。这个数字比0.4.0正式构建还早了两三个月,本身就滞后。但它至少说明一件事:不断刷新的commit数字,和"这个引擎离生产可用还有多远",是两条不重合的曲线。

0.4.0补上了哪些课

这次更新的核心不是某个单点突破,是一批"网页应用运行必需但此前一直缺席"的能力集中到货。CSS这边,attr()进入实验模式、calc()等数学表达式支持延迟求值(比如sign(1em - 32px))、@font-face里的font-feature-settings补齐了可变字体渲染的最后一块拼图。DOM和Web API这边,SharedWorkerCustomElementRegistryRequest/Response/BlobtextStream()、指针捕获事件全部到位,加上crypto.subtle对KT128/KT256、ML-KEM、ML-DSA的支持,说明团队也在补新一代密码学标准的账。

真实网站上能看到效果:变量字体渲染改善之后,ZulipSpeedtest这类站点变得明显更易读,lichess.org的布局正确性也有肉眼可见的提升。

提交数字和兼容基线,走的不是一条线

Servo的WPT看板把CSS部分单独拆出来看,通过率是68.4%(按测试)、64.6%(按子测试),比整体数字还低一截——布局引擎最难啃的骨头,恰恰是CSS这块。

开发活跃度 vs 兼容进度基线 558 6月提交数 4月534 → 5月391 65.6% 子测试93.1% WPT整体通过率 68.4% CSS部分通过率 按测试计分 数据来自Servo自建WPT看板,4月19日快照,早于7月的0.4.0构建, 不能当作对0.4.0的精确度量,仅作趋势参考。

问题不只是这个数字过期。wpt.fyi自己也说明过,WPT得分取决于启用的测试集合、测试元数据、浏览器版本、运行平台,以及失败是否被标记为"预期"或"不支持"——跨引擎比较必须用同一版本、同一运行配置,否则数字之间没有可比性。也就是说,就算Servo哪天把这几个百分比拉到90%以上,也不能直接拿去和Chromium、Gecko、WebKit的头条兼容性数字画等号。

提交数纪录属于开发者,兼容进度条属于用户。
  • 结论.commit数字反映的是社区规模和开发节奏,WPT百分比反映的才是产品能不能用,两者该分开看,不该互相背书。

嵌入场景里,Servo的对手不是Chrome

Servo最初由Mozilla孵化,用Rust写成,卖点是并行化布局和内存安全,如今转由独立基金会主导。它的定位从来不是做一个完整浏览器产品,而是给应用开发者提供一个可嵌入的轻量高性能网页渲染方案。真正要比较的对象不是Chromium或Firefox,而是CEF(Chromium Embedded Framework)Electron和各平台自带的WebView,另一个参照系是同为从零重写的独立引擎Ladybird

这个定位落到real world compat的测试结果上,画面挺一致:Google PhotosCash Converters这类站点在0.4.0之前就能跑,现在依旧稳定;Google MapsOpenStreetMap能正常渲染,但交互还有问题——地图这类高频操作型应用,恰恰是最考验引擎成熟度的场景。

安全方面这次也不轻松:Servo把JS运行时SpiderMonkey升级修了几个CVE,RSA运算改成常量时间计算防时序攻击,ML-DSA的Decompose步骤也补上了常量时间实现。

  • 风险.Servo官方博客自己承认,其RSA实现目前仍受Marvin Attack(一种时序侧信道攻击)影响,对应的RUSTSEC-2023-0071漏洞尚未修复——考虑把Servo用于处理敏感数据的嵌入场景,这条要提前算进风险评估。

接下来该盯什么

对想把Servo嵌进自家应用的开发者来说,比commit数字更该跟的,是WPT看板什么时候更新到7月的0.4.0构建、real world compat名单会不会真的把Google Maps和OpenStreetMap的交互问题解决掉,以及C ABI嵌入接口和安全沙盒架构这两块目前还在推进中的硬骨头。这些指标不如"558次提交创纪录"上头,但决定Servo到底能不能从原型走进生产。