OpenAIは最近、Codex CLIをRustで再構築することを発表した。Codex CLIスタックはもともとReact、TypeScript、Nodeを特徴として持っている。この再構築は、開発者エクスペリエンスの向上に加えて、セキュリティとパフォーマンスの向上を実現することを目的としている。
発表では、再構築の動機を次のように説明している。
私たちの目標は、ソフトウェアの各部分を可能な限り効率的にすることです。そして、いくつかの改善したい領域がありました。
- 依存性ゼロのインストール — 現在、Node.js v22以上が必要ですが、これは一部のユーザーにとって煩わしく、あるいは障害となっています。
- ネイティブセキュリティバインディング — 驚きです!バインディングが利用可能になった当初から、Rust for Linuxサンドボックスは既に提供しています。
- 最適化されたパフォーマンス — ランタイムガベージコレクションが不要なため、メモリ消費量を削減できます。
- 拡張可能なプロトコル — Codex CLIのための「ワイヤープロトコル」に取り組んでおり、開発者が異なる言語(Type/JavaScript、Pythonなど)やMCP(Rustですでにサポート)でエージェントを拡張可能にしています。
Rustは、パフォーマンス、メモリ使用量、信頼性、リソース消費を設計目標として優先するシステム言語である。Rustの豊富な型システムと所有権モデルは、メモリ安全性とスレッド安全性を保証し、コンパイル時に多くのバグを排除する。欠点として、マイクロソフト(ガベージコレクションを必要としない新しい開発にRustの使用を義務付けた)は、開発者が初期の学習曲線が急であり、いくつかの非安定化されたRust機能に依存していると報告している。現時点では詳細はないが、JavaScriptやPythonのような大規模な開発者基盤を持つ言語でCodex CLIを拡張できることは、コミュニティの貢献にとって重要である。
Codex CLIのRust版は現在開発中である。チームは、Rust版が体験と機能の面で同等になるまで、元のTypeScript版の脆弱性を修正するために並行して作業を続けている。開発者は次のようにして新しいバージョンを試せる。
npm i -g @openai/codex@native codex ネイティブコンパイル言語への書き替えは一般的であり、特にパフォーマンス向上を求めるツールにおいて顕著である。マイクロソフト自身も最近、TypeScriptコンパイラをGo言語に移植し、10倍のパフォーマンス向上を発表した。また、宇宙船搭載システムなどの安全性が重要な環境でRustを使用するための研究も進行中である。
OpenAIの言葉を借りれば、Codexは多くのタスクを並行して実行できるクラウドベースのソフトウェアエンジニアリングエージェントである。Codexは、機能の作成、コードベースに関する質問への回答、バグの修正、レビューのためのプルリクエストの提案などのタスクを、それぞれ独自のサンドボックス環境で実行できる。
Codex CLIはGitHubでオープンソースであり、MacOS、Linux、またはWSL(Windows Subsystem for Linux)経由でWindows上で動作する。