
Cloudflare 推 Rust 版 TypeScript 編譯器,資源成本成新焦點
Cloudflare 旗下 VoidZero 團隊正與 Owner.com 工程師開發 tsrs,將微軟以 Go 實作的 TypeScript 編譯器移植至 Rust。iThome 報道指出,tsrs 已提供實驗版本;在與 TypeScript 7.0 Go 版採用相同型別檢查工作執行緒的初步測試中,速度最高可達 8 倍,RAM 用量則約少 70%。不過,這些數字屬特定基準測試結果,不能直接視為所有專案都會得到同等幅度的提升。
對大型 TypeScript 專案而言,這項嘗試的重點在於降低型別檢查的等候時間與機器資源消耗。隨着原始碼及檢查檔案數量增加,編譯器的運算時間和 RAM 需求都可能上升;若 Rust 版能在維持相近檢查結果的前提下減少成本,持續整合流程、雲端開發環境及 AI coding 工具的回饋迴圈都可能受惠。這是由已公布的資源數據所作出的合理推論,實際效果仍取決於專案結構及工具鏈整合情況。
Wasm 讓檢查可移到瀏覽器
tsrs 的另一個方向是 WebAssembly(Wasm)。iThome 指出,Rust 編譯為 Wasm 時毋須帶入與 Go 垃圾回收相同的機制,有助壓低記憶體負擔。tsrs 已提供 Wasm 套件,可在瀏覽器內直接檢查 TypeScript 程式碼,並輸出 JavaScript 和型別宣告檔案。
這意味着開發工具日後可把部分檢查前移至使用者的瀏覽器:例如網上範例、教學沙盒或輕量程式碼編輯器,毋須每次都把程式碼交回 server 才得到基本結果。不過,目前瀏覽器版本只支援單一執行緒,亦未支援供編輯器使用的語言服務,因此尚未等同完整 IDE 體驗。
與官方 Go 版及 Bun 的定位差異
tsrs 的目標並非另立 TypeScript 規格。Cloudflare 表示會遵循微軟 TypeScript 團隊的設計決策,以減少與官方版本不相容的風險;iThome 亦指出,雙方已確認效能測試使用相同設定,部分 tsrs 的效能改善已納入 Go 版編譯器。
現階段較實際的分別,可概括如下:
| 工具 | 已知定位 | 輸出能力 |
|---|---|---|
| 官方 TypeScript Go 版 | 官方編譯器實作及相容性基準 | 型別檢查及編譯流程 |
| tsrs | Rust 移植、著重資源效率及 Wasm | 型別檢查、JavaScript、型別宣告檔案 |
| Bun check | Bun 1.4.3 新增的型別檢查器 | 只檢查型別,不輸出 JavaScript |
Bun 的 bun check 同樣移植自 Go 版 TypeScript,但其用途是執行程式前找出型別問題;tsrs 則同時處理 JavaScript 和宣告檔輸出。另一邊廂,Vercel Labs 的 tsc-ts 是把 Go 版編譯器以 TypeScript 重寫,再經 scriptc 轉為可直接執行的原生程式,支援型別檢查與 JavaScript 輸出。這反映競爭已不只在編譯速度,也在乎不同開發工作流需要哪種執行環境與輸出方式。
實驗版仍要先看相容性
tsrs 尚未適合以效能數字取代既有工具鏈。iThome 報道提到,現時實驗版本的錯誤訊息顯示次序仍未完全與官方版本一致。團隊計劃把 tsrs 與另一個 Rust 移植專案 tsc-rs 整合為單一套件,並加入語言服務等能力。
接下來值得觀察的,是整合後能否補足編輯器功能並維持官方 TypeScript 的行為一致性。對重視快速檢查、瀏覽器端工具或雲端開發成本的團隊而言,tsrs 可先作評估對象;但在它仍屬實驗階段時,生產環境採用前仍應以自身程式庫驗證相容性和診斷結果。
延伸閱讀
AI 輔助說明: 本文由 AI 協助整理,並經兩輪獨立自動品質審核;資料及連結仍以原始來源為準。
參考來源
- iThome — Cloudflare以Rust移植TypeScript編譯器,型別檢查速度最高達Go版8倍 — original report
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。




