Rust版React CompilerがViteのワークフローに登場し始めており、少なくとも1つの本番コードベースでは、その効果は理論上のものだけではないと報告されている。

Master.devの新たなブログ記事によると、1,036ファイルで構成されるReact Routerアプリケーション「Outlyne」の開発チームは、oxcが2026年8月4日に正式対応を公開した後、BabelベースのReact CompilerからRust版へ移行した。同記事の説明では、シングルスレッド実行時のコンパイル時間が14.3秒から0.81秒へ短縮され、ビルドのうちコンパイル部分で17倍を超える改善だったとしている。

同社は、ビルド全体が同じ倍率で高速化するわけではないと慎重に説明している。報告された事例では、ビルド全体は22.1秒から9.3秒へ改善した。依然として大幅な短縮ではあるが、コンパイラー単体の改善幅よりはるかに小さい。ビルドパイプラインにはコンパイル以外の処理も数多く含まれることが多いため、この区別は重要だ。

記事は、ツールを巡るより広範な変化も指摘している。`@vitejs/plugin-react`のバージョン6.1.0にはReact Compilerの実験的なネイティブ対応が導入され、Viteの設定で`{ compiler: true }`を指定すれば有効にできるという。このプラグインを使用できないプロジェクト向けには、Viteベースのスタックでコンパイラーを適用する別の手段として、記事は`@acusti/vite-plugin-react-compiler`を挙げている。

実用上の主張は速度だけではない。ブログによると、Rust版コンパイラーは、従来のBabelベースのコンパイラーが対応に苦戦していた事例も扱える。これには、`try/catch`ブロック内の条件分岐、分割代入された後に再代入され、さらにネストされたクロージャ内で使われるコンポーネントのprops、計算されたオブジェクトのプロパティキーなどが含まれる。同記事によると、こうした修正により、筆者のアプリではさらに7つの関数が対応対象に加わった。

筆者はまた、Rust版を採用することでツールチェーン内部の一貫性が高まると述べている。以前はリントとビルド時のコンパイルが完全には一致していなかったが、現在は両方で同じReact Compiler実装と同じ機能セットを使用しているという。これにより、リント上の問題として表れないまま、ビルド出力でコンポーネントが処理対象から外れるリスクが低下する。

すでにVite 8以降を使用しているチームについて、記事は、移行は主として構成を簡素化する作業になると主張している。筆者によると、Babelベースのフローでは`@rolldown/plugin-babel`を削除できるほか、React Routerのフレームワークモードを使うプロジェクトは、より新しい構成へ移行することで`vite-plugin-babel`、`babel-plugin-react-compiler`、`@babel/preset-typescript`を取り除ける。

記事は依然として制約があることも指摘している。論理代入演算子はまだサポートされておらず、`try`ブロック内の`throw`によって、コンパイラーがコンポーネントやフックを処理対象から外す場合もある。しかし方向性は明確だ。Rustへの移植によってReact Compiler対応は、壊れやすい実験というより、通常のビルド機能に近いものになりつつある。

CI費用とビルド時間を注視する開発者にとって、そこが本当のポイントだ。コンパイルの高速化はそれ自体有用だが、設定範囲の縮小と、リントとビルドの機能面での整合性向上こそが、Rust版コンパイラーをより広範な採用に耐え得るものに見せている。