rustcをC言語4600万行に変換した「crustc」公開
原題: crustc: entirety of `rustc`, translated to C
なぜ重要か
RustコンパイラをC言語へ変換することで、GCCのみを用いたRustのブートストラップ経路の可能性が広がり、コンパイラ研究やセキュリティ検証の新たな手段となり得る。
開発者FractalFirがGitHub上で「crustc」を公開した。これはRustの公式コンパイラ「rustc」バージョン1.98.0-nightly(2026年6月16日付)をC言語に変換したプロジェクトで、変換後のコード量は約4600万行に達する。GCCとmakeを使ってビルドでき、実際に動作するRustコンパイラが得られる。
「crustc」は、RustのコンパイラであるrustcのソースコードをC言語に自動変換したプロジェクトで、開発者FractalFirによってGitHub上に公開された。対象バージョンはrustc 1.98.0-nightly(コミットハッシュ: c712ea946、2026年6月16日)で、変換後のCコードは約4600万行に及ぶ。
ビルドにはGCCとmakeが必要で、LLVMのライブラリ(libLLVM.so.22.1-rust-1.98.0-nightly)へのパスを指定する必要がある。rustc自体がLLVMをバックエンドとして使用しているため、LLVMのライブラリが別途必要となる構成だ。プロジェクト側では、ビルド済みLLVMをリポジトリに同梱することは意図的に避けており、ユーザーが既存のrustupツールチェインからライブラリを参照する形をとっている。
ビルド後に得られるバイナリは実際に動作するRustコンパイラであり、`rustc --version`コマンドで正しいバージョン情報が表示されること、さらにRustコードのコンパイルが可能であることがREADMEで確認されている。リポジトリにはllvm_wrapper、rustc、rustc_driver、stdなどのディレクトリが含まれており、標準ライブラリのビルド手順も別ドキュメント(BUILDING_STD.md)として用意されている。
GitHubでの公開から間もなく232のStarを獲得しており、Rustエコシステムおよびシステムプログラミング界隈での注目度の高さが伺える。