跳到正文
原文
InfoQ 中文· 作者:Leela Kumili·· 3 小时前AI 评分75

GitHub Copilot 运行时从 TypeScript 迁移至 Rust 的工程细节与性能收益

GitHub 通过 AI 辅助重构,将 Copilot 运行时迁移至 Rust

AI 摘要

GitHub 将 GitHub Copilot CLI、应用和 SDK 背后的运行时从 TypeScript 和 Node.js 迁移到 Rust,通过 AI 辅助重写替换了超过 800,000 行代码。这次迁移耗时约 14.5 周,包含 128 个 PR,期间持续发布了 135 个版本。对于客户端启动、会话创建与单轮交互场景,旧运行时耗时 5.25 秒,Rust 运行时进程内嵌入后耗时降至 292 毫秒。

此次迁移改变了应用与运行时的集成方式。之前的实现需要 Node.js 和 V8,并通过进程边界与宿主应用通信,这会给每个客户端增加约 100MB 工作集内存。而 Rust 实现可以通过 C ABI 直接嵌入到宿主应用中,同时保留独立进程模式可选。GitHub 采用了增量替换策略,各个 TypeScript 组件被 Rust 实现逐一替换,期间通过临时的 N API 互操作层连接两者。绝大部分实现代码由 AI 智能体生成,编译、测试和人工评审用于发现各类回归问题。

事实层面,生产环境运行时在迁移过程中持续迭代更新,且保留了语言专属接口。推断层面,这种架构允许原生 Rust 运行时既可直接嵌入宿主应用也可独立运行,显著降低了资源占用并提升了响应速度。猜测层面,社区关注的边界稳定性验证难题(如取消、重试和背压)可能成为未来类似大规模 AI 辅助重构项目的关键挑战。

来源:InfoQ 中文 · infoq.cn