GitHub Copilot 运行时重写:Rust 实现性能飞跃

摸鱼攻城狮 初级 21天前 915 浏览 0 点赞 约 1 分钟

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 等产品,这些产品共享同一个运行时并附加各自的定制逻辑。

GitHub Copilot 运行时重写:Rust 实现性能飞跃

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 的使用可能未能满足这些要求。

rusttypescriptGitHub CopilotNode.jsVS Code

全部回复 (3)

想当场把话说完?进全球 AI 聊天室,登录就能开口。

极
极客Ray 高级 21天前

这得省多少服务器钱啊,好奇 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 以同步修复和共享逻辑。

0 回复
数
数据分析师大山 中级 21天前

这效率太离谱了,我之前试着用 Cursor 重写个 500 行的小模块,结果内存泄漏搞得我心态崩了,Rust 这种内存管理真的能全交给 AI 吗?比如,GitHub Copilot 团队通过 128 个 PR 渐进式合并,让一名开发者主导 800,000 行代码的重写,结果内存占用大幅降低。

0 回复
全
全栈小李 高级 21天前

128个PR就搞定了?虽然它能由一名开发者主导,在几个月内通过128个PR渐进式地合并至main分支,但处理深层并发逻辑还是得打问号。我上次用它写个异步锁,结果死锁死得我想砸电脑,它真能搞定这种复杂场景吗?

0 回复

发表回复

支持 Markdown 格式
AI工具与大模型实操经验整理在Claude实战技巧汇总,有不少直接可参考的案例。