Cloudflare 与 VoidZero 联合推出 tsrs:由 AI 生成的 TypeScript 编译器 Rust 移植版
作者: Daniel Curtis
tsrs 是 Cloudflare 联合 VoidZero 与 Owner.com 开发的 TypeScript 编译器 Rust 移植版,非分支项目,语言规范仍由 TS 团队维护;实测类型检查速度最高提升 8 倍,内存降低约 70%,支持 WASM 编译。
关键观点:类型检查性能提升达 8 倍且内存减少 70%;通过 @tsrs/wasm 可在浏览器/Workers 运行,无 GC 开销;移植过程全程由 Claude Opus 5.5 Agent 驱动,以 15,197 个 TS 官方一致性测试为基准。
适合前端架构师、TypeScript 工具链开发者、大规模单体项目工程效能负责人阅读。
tsrs 是 TypeScript 编译器的 Rust 移植版, 由 Cloudflare 宣布推出, 并与 VoidZero 及 Owner.com 的 Max Schwenk 共同开发。该项目在 Oxc 工具链 中孵化,并与 TypeScript 团队密切合作。Cloudflare 强调,tsrs 并非 TypeScript 的分支,语言设计仍完全由 TypeScript 团队掌控。
Cloudflare 声称,在类型检查工作线程数量相同的情况下,tsrs 的类型检查速度 最高可提升 8 倍,内存占用减少约 70% 。Rust 还可使项目能够通过 @tsrs/wasm 编译为 WebAssembly,从而在浏览器或 Workers 上运行检查,而无需像 Go 二进制文件那样将垃圾回收器一并带入最终产物。
开发者只需指定现有的 tsconfig,即可尝试使用:
npm install -D tsrs
npx tsrs -p . --noEmit
在一篇 详细的技术文章 中,Schwenk 解释说,他没有编写任何代码,而是通过指挥以 Claude Opus 5.5 为核心的 Agent,完成了忠实于原版的移植。整个过程以 TypeScript 自身的 15,197 个一致性测试用例作为规范。在 Owner 拥有 37,000 个文件的单体代码库中,原本使用 TypeScript 7.0 需要 19 GiB 内存和 80 秒才能完成的检查,现在只需 7 秒。
一名开发者 对两个 npm 包进行了基准测试 ,测得 tsrs 的检查速度提升 5.3 倍,内存占用减少 72%,且诊断结果完全一致,生成的代码也逐字节相同。不过,他发现 tsrs 在存在类型错误时会以退出码 2 结束,而 tsc 返回 1,这一差异足以悄然破坏 CI 脚本。如果改用更新的 TypeScript 7.1 beta ,而非 7.0 作为基准, ImportStatic 的测试 显示,性能提升幅度缩小至 2.7 倍。这也提醒开发者,Cloudflare 宣称的 8 倍性能提升是相对于较旧版本测得的。
TypeScript 团队的 Daniel Rosenwasser 对此回应 称,性能提升“并不只是语言选择的结果”,而且 tsrs 中发现的一些优化已经被用于改进 TypeScript 7.1,使其更加精简。
Peter Steinberger 在 X 上表示 :
我在周末迁移到了 tsrs。可以直接替换,OC 的运行速度提升了约 5 倍。
有点不可思议,微软花了一个团队两年时间用 Go 重写 TypeScript 编译器,而现在只需让一个 Agent 放手去做,几周内就能得到一个明显更好的版本。
也有人对此持谨慎态度, 质疑 基于 Arena 分配、且永不释放内存的模型是否合理。
tsrs 与微软基于 Go 开发的编译器 tsgo,以及 Theo Browne 开发的另一个 Rust 移植项目 tsc-rs 并存。Cloudflare 并未打算让这些项目相互竞争,而是 将 tsc-rs 与 tsrs 合并 为一个统一的软件包,并计划加入语言服务器和内容映射器支持。
目前,tsrs 仍处于实验阶段。它尚不支持 watch 模式和语言服务器, --init 与 --showConfig 也不可用,诊断信息的顺序可能与原版不同。更多信息可参阅 兼容性说明 。
由于 tsrs 跟踪的是 TypeScript 7,仍在使用 TypeScript 5 或 6 的团队应先迁移到 微软的原生 Go 移植版 ,再替换为 tsrs。完成前一步后,迁移到 tsrs 只需继续使用现有的 tsconfig 即可。
tsrs 采用 Apache-2.0 开源许可证,现已在 GitHub 上发布。
查看英文原文: Cloudflare and VoidZero Introduce tsrs: An AI-Generated Rust Port of TypeScript
促进软件开发及相关领域知识与创新的传播
关于我们 我要投稿 合作伙伴 加入我们 关注我们
联系我们 内容投稿:editors@geekbang.com 业务合作:hezuo@geekbang.com 反馈投诉:feedback@geekbang.com 加入我们:zhaopin@geekbang.com 联系电话:010-64738142 地址:北京市朝阳区望京北路9号2幢7层A701
InfoQ 近期会议 上海 · QCon 全球软件开发大会 2026.10.22-24 北京 · AICon 全球人工智能开发与应用大会 2026.12.18-19
全球 InfoQ InfoQ En InfoQ Jp InfoQ Fr InfoQ Br
Copyright © 2026, Geekbang Technology Ltd. All rights reserved. 极客邦控股(北京)有限公司 | 京 ICP 备 16027448 号 - 5 京公网安备 11010502039052号 | 产品资质
本文内容由 ai007 从公开渠道聚合,版权归原作者所有。若原文已删除或变更, 以原文站为准;本站存档仅为便于查阅而保留。