Cloudflare推出tsrs,Rust移植版TypeScript编译器,类型检查提速最高8倍
Cloudflare 联合 VoidZero 发布 tsrs——TypeScript 编译器的 Rust 移植版本,基于 AI Agent 辅助开发,在大型项目中实现类型检查速度提升 5–8 倍、内存...
Cloudflare 近日正式推出 tsrs,一个由 Rust 编写的 TypeScript 编译器移植版本。该项目并非对 TypeScript 的分支改造,而是以 TypeScript 7.0 为基准,通过重构底层实现显著提升性能与部署灵活性。tsrs 由 Cloudflare 与 VoidZero 合作开发,并得到 Owner.com 工程师 Max Schwenk 的主导推进,其核心开发过程颇具技术实验性:Schwenk 并未亲手编写代码,而是通过指挥一个以 Claude Opus 5.5 为核心的 AI Agent 完成移植工作,全程以 TypeScript 自身的 15,197 个一致性测试用例作为验证规范。
从实测数据看,tsrs 在多个典型项目中展现出显著优势。在 Owner 公司拥有 37,000 个文件的单体代码库中,原版 TypeScript 7.0 需耗时 80 秒、占用 19 GiB 内存完成类型检查;而 tsrs 仅需 7 秒,内存降至约 5.7 GiB,提速约 11.4 倍(原文称“7秒”对应原80秒,即约11.4倍;但 Cloudflare 官方表述为“最高8倍”,此处按官方口径统一采用“最高8倍”)。另一名开发者独立进行的基准测试显示,在相同配置下,tsrs 相比 tsc 7.0 实现 5.3 倍速度提升与 72% 内存下降,且诊断结果与生成代码逐字节一致。
值得注意的是,性能增益存在版本依赖性。当以更新的 TypeScript 7.1 beta 为对照基准时,部分测试(如 ImportStatic)显示提升幅度收窄至 2.7 倍。这表明 Microsoft 在原生 Go 版本中已吸收部分优化思路——TypeScript 团队成员 Daniel Rosenwasser 明确指出:“性能提升并不只是语言选择的结果”,并确认 tsrs 中发现的部分优化已被反哺至 TypeScript 7.1,使其更精简高效。
技术实现上,tsrs 的 Rust 基底带来两大关键优势:一是内存效率更高,避免了 Go 运行时自带垃圾回收器带来的开销;二是天然支持 WebAssembly 编译,可通过 @tsrs/wasm 包在浏览器或 Cloudflare Workers 等无服务环境中直接运行类型检查,无需额外部署二进制依赖。开发者迁移成本极低:只需安装 tsrs 包,沿用现有 tsconfig.json,执行 npx tsrs -p . --noEmit 即可启动检查。
然而,tsrs 当前仍处于实验阶段,功能尚未完备。它暂不支持 --watch 模式、语言服务器(LS)、--init 与 --showConfig 命令;诊断信息输出顺序可能与原版不同;在存在类型错误时返回退出码 2(tsc 返回 1),这一差异可能导致 CI 脚本静默失败,需额外适配。此外,项目明确要求用户先将项目升级至 TypeScript 7.x,再替换编译器——仍在使用 5.x 或 6.x 的团队应优先迁移到微软官方的 Go 版本(tsgo),再过渡到 tsrs。
生态层面,tsrs 并非孤岛。它诞生于 Oxc(Oxidized Compiler)工具链孵化环境,并计划与 Theo Browne 开发的 tsc-rs 项目合并为统一软件包。Cloudflare 表示未来将逐步加入语言服务器与内容映射器支持,目标是构建一个高性能、可嵌入、跨平台的现代 TypeScript 工具链核心。
开源协议方面,tsrs 采用 Apache-2.0 许可证,代码已公开于 GitHub。社区反馈呈现两极:有人惊叹其效率,“OC 项目运行速度提升约 5 倍”,甚至评论称“微软花两年用 Go 重写,AI Agent 几周就产出更优版本”;也有人提出质疑,担忧其基于 Arena 分配模型(分配后永不释放内存)在长期运行场景下的合理性。
从行业视角看,tsrs 的出现标志着编译器开发范式的潜在转变:AI 辅助大规模系统级代码迁移正从理论走向实践。过去需数人月投入的跨语言重写,如今可在严格测试约束下由 AI Agent 高保真完成。这不仅加速了工具链迭代,也为其他语言生态(如 Python 的 mypy、Rust 的 rustc 优化)提供了新路径参考。
尽管尚有功能缺口,tsrs 已展现出对大型前端工程的实用价值。对于内存受限、CI 构建时间敏感或需在边缘环境运行类型检查的团队,它提供了一个值得评估的替代选项。随着后续功能补全与社区协作深化,tsrs 有望成为 TypeScript 生态中不可或缺的高性能编译器实现之一。
