Cloudflare 收购 Rust 版 TypeScript 编译器 tsrs
TypeScript-Compiler in Rust: Cloudflare übernimmt tsrs | heise online
Cloudflare 及其收购的 VoidZero 宣布接手开源项目 tsrs,这是用 Rust 重写的 TypeScript 编译器,已并入 Oxc 工具链。Cloudflare 称在相同线程数下 tsrs 类型检查速度最高为 TypeScript 7.0 的 8 倍、内存占用少约 70%,项目创始人自测则为 2.5 至 5 倍、内存约为三分之一。当前版本 0.18 仍属实验性质,采用 Apache 2.0 许可,提供 macOS ARM 与 Linux 原生二进制,尚无 Windows 版本。
推荐理由
AI 评分 71
Cloudflare 收购 Rust 版 TypeScript 编译器项目,并给出与微软 Go 移植版的性能对比数据,可了解编译器工具链的路线之争。
主题
正文 · AI 翻译
关闭提示
本文也有英文版本。
本文在技术协助下完成翻译,并在发布前经过编辑审校。
。
Cloudflare于周二宣布,Cloudflare以及今年6月收购的VoidZero将接手tsrs——TypeScript编译器的Rust移植版本。一位开发者直到9月底才启动这个开源项目,原因是TypeScript在其雇主那里占用的内存过多。为此,tsrs将微软的TypeScript Go实现逐函数迁移到Rust,并计划直接取代编译器和语言服务器。如今,tsrs也已成为VoidZero基于Rust的JavaScript工具链Oxc的组成部分。
广告后继续阅读
据Cloudflare称,在两者使用相同线程数的情况下,tsrs的类型检查速度最高可达TypeScript 7.0的八倍,所需内存约少70%。项目创始人对微软Go编译器当前开发版本的测量结果则更为保守。据称,在17个开源项目上,tsrs的速度是后者的2.5到5倍,所需内存仅约为三分之一。
对比显示出明显的速度提升。
(图片:Cloudflare)
至于在Go移植版之后为何还需要一个Rust版本,Cloudflare以WebAssembly(Wasm)作为理由。编译为Wasm的Go程序必须自带垃圾回收器,而Rust无需垃圾回收器,据Cloudflare称因此可节省内存。该公司也将直接从tsrs中受益,例如当AI代理在Workers平台上于隔离环境中运行完整的开发工具链时。
由AI代理完成移植
tsrs最初由Max Schwenk开发。他在餐饮软件供应商Owner.com负责AI开发者工具,并在那里遇到一个案例:TypeScript 7.0在单线程中检查一个约37,000个文件的后端时,需要19 GByte内存和80秒,以至于几乎不再有资源留给并行的编码代理。移植工作借助AI完成,具体使用的是Anthropic Claude Opus 5.5。Schwenk表示,他自己没有写过一行代码。
(图片:maximkostenko / 123rf.com)
betterCode() Rust将于2026年11月26日展示哪些架构、工具和流程适合使用Rust进行代理式软件开发。讲座将传授最佳实践和指导方针,说明哪些任务适合有意义地使用代理,以及哪些事情最好还是自己做。
根据项目文档,tsrs在TypeScript的一致性测试套件中,几乎所有的错误基线都与原版一致,只有少数偏差被开发团队归因于测试环境。Schwenk将项目移交给Oxc团队的理由是,他希望把项目交到那些以维护Rust工具为全职工作的人手中。
广告后继续阅读
微软密切关注,并让TypeScript 7.1更快
同样在周二,微软发布了TypeScript 7.1的Beta版。根据厂商测量的五个代码库,其检查所需时间比TypeScript 7.0少13%到47%。TypeScript团队的Daniel Rosenwasser在Hacker News的一条评论中证实,这些性能提升有一部分归功于tsrs中的优化。他的团队自己也用Rust做过实验,并推测速度提升的很大一部分其实并非那么强烈地归因于语言本身。
Cloudflare排除了对TypeScript进行分叉的可能,语言方面仍应仅由微软的TypeScript团队决定。为了让移植版本跟上微软的更改,AI代理应每天分析TypeScript仓库并提出合适的修正建议。
Windows二进制文件仍缺失
Cloudflare强调当前版本0.18的实验性质。该npm包采用Apache许可证2.0,为macOS的ARM处理器和Linux提供原生二进制文件,但迄今为止尚未提供Windows版本。开发者计划推出一个与TypeScript 7.1完全兼容的稳定版本。
(rme)