←新聞 6 / 12→

開發工具

GitHub Copilot 運行時遷移至 Rust,全程使用 Copilot 編寫

Migrating the GitHub Copilot runtime to Rust, using Copilot

GitHub Copilot 運行時遷移至 Rust,全程使用 Copilot 編寫

GitHub Blog2026-09-17

摘要

GitHub 宣布將 GitHub Copilot CLI、App 及 SDK 背後的 Copilot agent runtime 從 TypeScript 全面重寫為超過 80 萬行的 Rust 程式碼。這項工程由單一開發者利用 GitHub Copilot 工具,透過 128 個 Pull Request 在數個月內完成,不僅效能大幅提升,更展現了 AI 輔助開發在大型專案重構中的實際應用潛力。

GitHub 將 Copilot agent runtime 從 TypeScript 完全重寫為 Rust,這項工程由單一開發者 Stephen Toub 利用 GitHub Copilot 工具完成,耗時數個月、跨越 128 個 Pull Request,最終產生超過 80 萬行的生產 Rust 程式碼。

重寫的動機在於原有架構的根本限制。Copilot agent runtime 是 GitHub Copilot CLI、GitHub Copilot app 及 GitHub Copilot SDK 的核心,並支撐著 VS Code、Visual Studio、Copilot Code Review、Copilot Studio 等多個微軟與 GitHub 產品。原本的 TypeScript/Node.js/V8 實現導致多個問題:SDK 消費者必須為每個 CopilotClient 實例生成一個 CLI 子進程,引入 100 MB 以上的記憶體開銷、進程間通訊延遲,以及 Node.js 執行環境的限制。Toub 選擇 Rust 是為了實現一個可在進程內嵌入、具備 C ABI 邊界、低啟動開銷、可靠性高、適合多語言 FFI 互操作的運行時。

採用的策略是原地遞增式重寫(in-place atomic replacement),而非大爆炸式切換。每個 Pull Request 將一個 TypeScript 元件替換為 Rust 實現加一個薄型 shim,刪除舊程式碼,使主分支始終可發佈。這種方法讓團隊無需停工,主分支保持活躍,每個 Pull Request 的變更範圍小且易於審查。從 2026 年 5 月到 8 月 21 日,共進行 135 次發佈(100 個預發佈版本、35 個穩定版本),平均每天 1.3 次,每次發佈包含少量已知的移植元件。

互操作層分為兩部分。臨時內部互操作透過 napi-rs crate 實現,使用 #[napi] 註解讓 Rust 函數可從 JavaScript 呼叫,並支援雙向通訊。SDK 表面則是永久性的,所有六個 SDK 語言版本(TypeScript、Python、Go、C#、Java、Rust)都透過相同的雙向 JSON-RPC 契約與運行時通訊。Rust 運行時現在暴露一個 C ABI 門面,包含 19 個匯出函數,背後支撐 364 個調度路由。這個設計讓 SDK 可選擇進程內或進程外託管,而無需改變上層 API。

會話日誌數據顯示,在整個移植工作

●開發者:可參考 AI 輔助重構大型專案的實踐案例

●投資人:關注 GitHub 提升開發者體驗與效率的策略

●一般用戶:Copilot 服務效能將獲得顯著提升

重要性評分

73/100

🟠 值得關注

GitHub CopilotRustAI 輔助開發效能優化程式碼重構
原文出處
上一則← Google AI Agents Challenge 四大工程模式解析下一則AI 水印技術可能削弱模型安全防護,引發開發者警惕 →

喜歡這篇?每天早晨還有更多。

訂閱 5min AI,讓 AI 替你追蹤整個 AI 世界。

相關指南

本文摘要由 AI 自動生成,內容源自原始報導。如有疑慮,請參閱關於我們。

喜歡這篇?每天早晨還有更多。

訂閱 5min AI,讓 AI 替你追蹤整個 AI 世界。