GitHub、Copilotで80万行超をRust移行

移行の全体像

128件の段階的PR
14週半で完全移行

成果とコスト

1ターン処理18倍高速
メモリ増加91%削減
トークン費用12万ドル

実務への教訓

変更不能なE2Eテスト
最終判断は人間主導
詳細を読む

GitHubは2026年5月から8月21日にかけ、Copilot CLIやアプリ、SDKを支えるエージェント実行基盤を、TypeScriptから80万行超のRustへ移行しました。AIエージェントがコードの大半を生成し、主に1人の開発者がチームの支援を受けながら128件のPRで段階導入し、Node.jsとV8による起動、メモリ、プロセス間通信の負荷を減らしました。

当初は約13万行のTypeScriptを想定しましたが、開発が並行して進んだため、実際には約43万行の本番コードが移行対象を通過しました。各PRで部品をRustに置き換えて旧実装を削除し、14週半で135回リリースする方式により、mainブランチを常に出荷可能に保ちました。

C# SDKを使い、モデル推論ネットワーク遅延を除いた検証では、クライアント作成から1回の応答、終了までが5.25秒から292ミリ秒へ18倍高速化しました。10クライアントの追加メモリは1,383MBから126MBへ91%減りましたが、GitHubは同時期の別変更を含む特定条件の測定であり、Rustが常に同じ倍率で速いわけではないと説明しています。

移行に使ったトークンは約1,363億で、費用は約12万ドル、担当者の投入時間は概算3週間でした。キャッシュ読み取りが入力側トークンの96.22%を占め、エージェントの並列作業を支える一方、人間はアーキテクチャ、境界、例外、最終マージを判断しました。

Rustのコンパイラは名前や型の不整合を素早く検出しましたが、仕様漏れ、イベント順序、性能劣化までは防げず、既知の不具合はすべてコンパイルを通過していました。GitHubが得た教訓は、E2Eテストを変更不能な判定基準として守ること、まず挙動を忠実に移してから再設計すること、そして段階リリースと人間の監督を組み合わせることです。