写了八年 C++ 浏览器引擎,今天才发现它的「心脏」从来不是为 Rust 准备的——这件事被 V8 用 6 个月彻底变了
Chrome 144(2026 年 1 月),V8 JavaScript 引擎集成了有史以来第一块 Rust 代码:temporal_rs,即 Temporal API 的 Rust 实现。这不是把某个工具链换成 Rust,而是 V8 本身——一个 C++ 编译器——第一次接纳 Rust 进入核心代码库。
过去十年,Rust 一直在浏览器生态的外围打转:Firefox 用它重写了部分 Gecko,Chromium 的某些 CLI 工具用了 Rust。但 V8 作为 Chrome 的心脏,从来都是一块铁板——纯 C++,没有任何外来语言的位置。2026 年 1 月,这块铁板裂开了一道缝:temporal_rs 成了 V8 有史以来第一个进入主干代码的 Rust 组件。
背景:为什么 V8 团队愿意改?
Temporal API(Intl.DurationTimeFormat 等新日期时间 API)是 Chrome 144 最显著的新特性之一,负责实现的是 Google 的 Igalia 团队。但真正的故事在实现方式上:这次不是写 C++,而是写了 Rust。
根据 State of the Browser 2026 大会上 V8 工程师的披露,把 Rust 塞进 V8 的工程量远超实现 Temporal API 本身——团队花了 6 个月改造 V8 的构建系统,让它能调用 Cargo、编译 Rust 代码、链接进 V8 的二进制产物。这是 V8 二十年来第一次改造构建工具链。
核心障碍有两个:
- V8 的构建系统(Bazel/GN)从未设计过来编译 Rust,需要引入全新的工具链支持
- V8 的安全沙箱模型需要 Rust 代码严格遵循与 C++ 相同的内存安全约束
三类证据
证据一:里程碑式的技术集成
temporal_rs 通过 Diplomat 工具生成 C++ FFI 绑定,让 Rust 代码与 V8 内部 C++ 无缝衔接。这条路走通之后,同一套 Rust 库同时服务了两个引擎:V8 和 Mozilla 的 Boa(纯 Rust JS 引擎)。Igalia 团队做到了 99% 的 test262 兼容率——比肩 C++ 实现。
来源:State of the Browser 2026,Jason Williams(Igalia),”Shipping Temporal: How a Global Rust Ecosystem Built Chrome’s Newest Web API”
证据二:社区实际影响
temporal_rs 不是孤立的实验。2026 年初,Firefox 已将 Temporal 标志为实验性支持,Safari 技术预览版进度约 70%,Node.js 26 即将跟进。5 个浏览器引擎正在共用同一套 Rust 库,这是 Web 标准库级别的协作模式。
来源:State of the Browser 2026 大会记录,2026 年 8 月
证据三:工程模式的转变
传统观点认为,把 Rust 塞进浏览器核心的障碍是性能或兼容性问题。真实的障碍是组织问题:V8 团队需要说服自己打破 C++ only 的边界,建立对 Rust 代码的 code review 流程,以及处理跨语言的依赖管理。这 6 个月的改造本质上是「工程文化变革」,不是技术突破。
来源:V8 官方博客 + Chromium blink-dev 讨论组
三个关键细节
-
不是全部重写,是嵌入式集成:temporal_rs 整体运行在 Rust 的沙箱里,不涉及 V8 JIT 编译器、GC 等核心 C++ 代码的修改。这是经过仔细评估的边界——Rust 管好一块独立功能,C++ 继续管好其他所有东西。
-
构建系统改造是复用价值的开始:一旦 V8 能编译 Rust,其他 Rust 库进入 V8 的门槛就大幅降低了。6 个月的投入换来的是长期可扩展性。
-
与 Oxc 的区别:Oxc 是工具链层面的 Rust 重写(linter/formatter/minifier),影响的是前端工程师的开发体验。temporal_rs 进入 V8 是引擎层面的 Rust 化,影响的是所有 Chrome 用户——每一次 new Date() 的底层实现,背后可能是 Rust 代码在跑。
三步下一步
-
验证你的 Chrome 版本:Chrome 144+ 已默认开启 Temporal API,其底层实现就是 temporal_rs。打开 chrome://version/ 确认版本号,大概率你已经用上了 Rust。
-
写一次 Temporal 代码:告别 Date.now(),用 Temporal.Now 做时间戳,用 Temporal.Duration 做精确计时,感受一下「Rust 跑在你浏览器里的感觉」。
-
关注 V8 的 Rust 路线图:这次集成打开了闸门。如果你在做 Rust 库,可以关注 V8 官方博客,看有没有下一块进入 V8 的 Rust 组件——也许是某个性能关键的算法,也许是某个新 Web API 的实现。
总结
六年里,Rust 在前端生态里一直在周边游走:工具链用 Rust 重写了(Oxc/Rolldown),浏览器外壳用 Rust 重写了(Cloudflare Kitesurf),但浏览器心脏从来没有动过。Chrome 144 用 6 个月告诉所有人:这件事不是技术问题,是意愿问题。现在,V8 打开了门,下一块 Rust 组件进来只是时间问题。
评论区
登录后可评论。