
GitHub 已将 Copilot CLI、应用及 SDK 的运行时环境全面重写为 Rust 语言。在约 14.5 周内,团队产出了超过 80 万行生产级 Rust 代码。此次重构主要由 GitHub Copilot 自身生成代码,一名核心开发人员主导完成,其余团队成员则并行推进新功能开发。
架构演进与性能瓶颈
该运行时最初基于 TypeScript、Node.js 及 Google V8 引擎构建。虽然适用于命令行界面,但该架构给 SDK 用户带来了显著的性能开销:每个客户端需启动独立的 Node.js 进程,加载 JavaScript 运行时并通过 JSON-RPC 通信。GitHub 指出,这种设计导致每个客户端增加约 100 MB 内存占用,加剧了进程管理复杂性,并限制了启动速度、吞吐量及服务密度。
Rust 重写版本将运行时与终端接口分离,暴露为原生二进制文件。现在,它既可通过 C 应用程序二进制接口(ABI)以进程内方式运行,也可通过现有的 JSON-RPC 服务器以进程外方式运行。Copilot SDK 支持 TypeScript、Python、Go、C#、Java 和 Rust,各语言均通过跨语言调用接口(FFI)访问共享运行时。
AI 辅助开发的成本与效率
该项目累计消耗约 1363 亿个 token,模型使用成本约为 12 万美元,其中包含 1306 亿个缓存输入 token。在子代理使用的模型中,Claude Opus 4.8、GPT-5.6 Sol、Claude Haiku 4.5 和 GPT-5.5 使用最为频繁,其次是 Gemini 3.1 Pro 和 Claude Opus 5。
GitHub 估计,主要开发人员为此投入约三周时间,其他工程师则负责互操作性、打包、构建优化及代码审查。微软杰出工程师 Stephen Toub 表示,并非简单要求 AI 代理“将整个代码库从 TypeScript 移植到 Rust”,而是 AI 代理使这类项目变得可行。主要开发人员指出,大部分时间用于审查更改、测试行为及检查完整性,而非下达初始编码指令,“移植代码很容易,但确保其正确性很难”。
性能实测数据
在排除模型推理和网络延迟的控制性本地端到端测试中,GitHub 测得显著性能提升:
- 启动速度:创建客户端、启动会话、完成交互并销毁会话的全流程,从重写前的 5.25 秒缩短至进程外模式的 1.33 秒,以及进程内模式的 292 毫秒。
- 吞吐量:在为期 1000 次会话的生命周期测试中,吞吐量从每秒 7.55 个会话提升至进程外模式的每秒 57.45 个会话,以及进程内模式的每秒 120 个会话。
- 内存占用:针对十客户端负载的测量显示,内存占用从 1383 MB 降至进程外模式的 247 MB 和进程内模式的 126 MB。
尽管迁移过程中出现了数十起回归问题,包括不完整移植、行为契约变更、状态错误及库版本冲突等,但与质量相关的公开问题占比保持在 23.7% 左右,与迁移前的 22.9% 基本持平。