GitHub Copilot 运行时重写:Rust 实现性能飞跃
GitHub Copilot 团队完成了 Copilot 运行时从 TypeScript/Node.js 到 Rust 的全面迁移,涵盖 80 万行生产代码。单一开发者主导了这场迁移,通过 128 个 PR 分阶段完成了对 main 分支的合并,而大部分代码是由 AI Agent 生成的。这次重写涉及 Copilot CLI、VS Code、Visual Studio、CCA、Copilot Code Review、Copilot Cowork、Copilot Studio,以及 Excel、Outlook、PowerPoint 和 Word 等产品,这些产品共享同一个运行时并附加各自的定制逻辑。
Rust 的选择是为了解决 Node.js 在资源利用率、内存开销和启动速度上的瓶颈。早期,Copilot CLI 依赖 Node.js 和 V8,UI 层采用 Ink 和 React,这种组合在开发独立 TUI 工具时表现良好,但随着 runtime 成为嵌入各种环境的底层引擎,Node.js 的局限性逐渐显现。紧密耦合的 TUI 层和 runtime 层,以及缺乏清晰分层的 SDK 设计,导致代码规模扩大后产生了技术债。
这次迁移带来了显著的性能提升,响应速度提升了几个数量级,内存占用大幅降低,服务器承载密度也随之提升。AI Agent 在代码生成中的应用,使得原本因时间和人力成本难以实施的语言迁移或架构重构变得高效。从 TypeScript 到 Rust 的跨越,不仅提升了性能,更是 AI 驱动开发实现工程效率飞跃的一次实验。
2022 年 11 月 3 日,GitHub 团队发布了一份关于 Copilot 合法性的诉讼文件,针对 Copilot 和 OpenAI Codex 的合法性提出质疑。诉讼涉及 GitHub、Microsoft 和 OpenAI,并涉及 11 种流行的开源许可证,包括 MIT、GPL 和 Apache 许可证。诉讼文件指出,这些许可证都要求归属作者的姓名和版权信息,但 Copilot 的使用可能未能满足这些要求。
全部回复 (3)
想当场把话说完?进全球 AI 聊天室,登录就能开口。

这得省多少服务器钱啊,好奇 AI 怎么处理那些复杂的生命周期,要是遇到
BorrowChecker报错它能一次性修好吗?GitHub Copilot 团队已将 Copilot 的运行时(runtime)从 TypeScript/Node.js 完整重写为 Rust。整个迁移过程涉及 800,000 行生产代码,由一名开发者主导,在几个月内通过 128 个 PR 渐进式地合并至 main 分支,且大部分代码是由 AI Agent 编写的。作为底层引擎,Copilot runtime 支撑着 Copilot CLI、VS Code、Visual Studio、CCA、Copilot Code Review、Copilot Cowork、Copilot Studio,以及 Excel、Outlook、PowerPoint 和 Word 等产品。这些产品实质上是调用同一个 runtime 并加上定制逻辑的“壳”。为了实现快速上线,早期各产品分别实现了 agent loop,之后才统一切换到 GitHub Copilot SDK 以同步修复和共享逻辑。