Rolldown と Vite は、Oxc 経由で取り込んだ Rust 版 React Compiler の統合を撤回した。既定のバイナリに乗る React 固有のコードが、非 React 利用者を含む全インストールにサイズ増を強いると判断したためである。

撤回の背景は次のとおり。

  • Oxc の napi transform アドオンは、React Compiler 経路の導入で 3.51 MiB から 8.66 MiB へ増え、差分は約 5.14 MiB だった
  • Rolldown 側ではバイナリが 28.7MB から 33.8MB(約 17%)へ増えたとの説明があり、Vite 全体への転嫁は正当化できないとされた
  • transform.reactCompiler として露出していた経路は、oxc 0.137.0 で上流から外れたのに合わせ、Rolldown からも削除された

Vite はフレームワーク非依存であり、React 向けコンパイラをコアに載せる先例を作ると、Vue や Svelte など他フレームワーク向けネイティブ実装でも同様の肥大化が続く、という懸念が議論の中心だった。プラグインとして切り離す案はあるが、Rust 直結と比べ AST 受け渡しのオーバーヘッドが残る。

より小さい再実装の実験も進んでおり、バイナリ増を抑えつつ性能を出す方向が模索されている。当面、React Compiler を使う場合は Babel ベースなど既存のオプトイン手段に戻る。

#参考文献