跳至正文返回首页Cloudflare 发布 tsrs:TypeScript 编译器的 Rust 移植
- 核心发布:Cloudflare 与 VoidZero 合作,联合 Owner.com 的 Max Schwenk 推出 tsrs,将 TypeScript 编译器移植到 Rust,作为 Oxc JavaScript 编译器工具链的一部分孵化。实验版本已发布至 npm,可通过
npm install tsrs 与 npx tsrs 试用。
- 性能与内存:在相同 type check workers 配置下,早期基准显示 tsrs 比 TypeScript 7.0 快 8 倍、内存占用减少约 70%;部分优化已上游回 TypeScript 7.1 beta,使后者比 7.0 快 2.5 倍。默认情况下 tsrs 会根据机器类型启用自适应配置,用更多内存换取更快速度。
- 定位与边界:官方明确这不是 fork——语言设计方向仍由 TypeScript 团队全权决定,tsrs 需严格跟随上游实现决策,否则会逐渐偏离并失去兼容性。稳定版发布前,团队计划把诊断输出顺序等差异压到最小。
- 为什么用 Rust:除速度外,Rust 的内存管理模型更适合 WebAssembly——编译为 Wasm 时无需携带垃圾回收器,可在浏览器、嵌入式设备与 Cloudflare Workers 上运行完整开发工具链。Cloudflare 近期刚通过新的 Emscripten target 支持 Workers 原生 Rust,边缘侧低内存开销正是其诉求。
- 为什么是现在:官方在博客中直接指出,前沿 AI 模型已能在数天内近乎独立完成大规模移植;此前 TypeScript 到 Go 的移植是唯一成功的先例,而现在 Rust 与 C++ 的多种移植版本已同时出现,说明对更快 TypeScript 的需求明确存在。
- 维护流程:沿用 Vinext 与 Next.js 的同步机制——每天由 agent 审查上游变更、抓取 diff、开 tracking issue,每晚跑 TypeScript 测试套件生成兼容性矩阵;发现缺口后 agent 定位两侧变更、构建复现并提交修复。性能改进会尝试回贡给 TypeScript 的 Go 代码库。
- 后续整合:团队正与 Theo Browne 合作,将 tsc-rs 与 tsrs 合并为单一包,支持 LSP 与 content mappers;Cloudflare 计划探索更深的集成,例如 Oxlint 的类型感知 lint 规则。
🔗 Cloudflare 官方博客 | tsrs GitHub | npm 包 | Wasm 版本
