9月10日、Rust Foundationが「Guest Post: Rust Is Tier-1 Language at Microsoft」と題した記事を公開した。MicrosoftがRustをC++・C#・TypeScriptと並ぶ社内開発の「Tier-1言語」に正式に位置づけ、Windows向け新コード生成バックエンドrustc_codegen_utcを本番投入したことが明らかになった。
Microsoftはこれまでも「新たなネイティブコードはRustで書くべき」という方針を公言してきた。Azure CTO(兼Microsoft Technical Fellow)のMark Russinovich氏が2023年にC++の新規利用を避けるよう呼びかけた発言は業界に大きな反響を呼び、その後もMicrosoftはRust Foundationへのスポンサーシップや社内プロジェクトへの投資を続けてきた。今回の発表は、そうした方針が「実際に開発者が使える基盤」として結実したことを意味する。
RustがMicrosoftの「Tier-1言語」に
MicrosoftはRustを、C++・C#・TypeScriptと並ぶ社内開発の最上位サポート言語(Tier-1)と正式に位置づけた。
「Tier-1言語」という工学的ステータスが意味するのは、単なる推奨にとどまらない。ローカル開発から本番環境まで一貫した「整備された標準経路(Paved Path)」が敷かれることを指す。具体的には、セキュアなツールチェーンビルド、開発者向けツーリング、品質ワークフロー、プラットフォーム統合、そしてMicrosoftソフトウェアが満たすべき**SDL(Security Development Lifecycle)要件への準拠**が含まれる。
つまり、Rustで書いたコードがC++と同じセキュリティ審査・品質管理プロセスを通過できる体制が整ったということだ。これは開発者の選択肢が増えるだけでなく、既存のC++資産とRustを混在させるプロジェクトが組織的に承認されやすくなることを意味する。
核心:rustc_codegen_utcとは何か
今回の発表で最も技術的に重要なのが、**rustc_codegen_utc**という新しいコード生成バックエンドだ。
rustc(Rustコンパイラ)は、コード生成のバックエンドを差し替え可能な設計になっている。既存の実装にはrustc_codegen_llvm(LLVMベース)、rustc_codegen_gcc(GCCベース)、rustc_codegen_cranelift(高速デバッグビルド向け)がある。rustc_codegen_utcはこれらと同じアーキテクチャに属し、rustcの共通コンパイラ機構をMSVCのバックエンド(UTC:Universal Tuple Compiler)に接続する。
UTCはMicrosoftがWindowsネイティブ開発向けに長年構築してきたC++コンパイラの最適化基盤だ。これをRustに繋ぐことで、以下が実現する:
- Windowsツールチェーン・ABIとの高い互換性
- バイナリ強化とコードセキュリティ機能
- ポストリンクのコンプライアンス・解析・サービシング(Hotpatchを含む)
- Rust/C++ハイブリッドプロジェクトのシームレスな相互運用
- 言語をまたいだインライン展開・最適化・SPGO(サンプルプロファイルガイド最適化)
- デバッグ・クラッシュダンプ解析
- プロファイリング・診断・カバレッジ計測
端的に言えば、WindowsにおけるRustとC++の共通コード生成基盤を作るプロジェクトだ。LinuxでClangを使うハイブリッドプロジェクトがRustとC++の両方をLLVMに繋げられるのと同じ状況を、Windowsネイティブ環境でも実現する。
すでに100以上のリポジトリで本番稼働
rustc_codegen_utcはMicrosoft DevDivの専任チームによる大規模投資の成果であり、2026年初頭から本番対応(production-ready)となっている。Rust 1.90以降はbootstrapped(コンパイラ自身のビルドパイプラインに組み込まれた状態)となっており、すでに100以上の社内プロジェクトリポジトリで使用中だ。採用リポジトリは毎週増え続けているという。
ファームウェア・ドライバ、カーネル・ハイパーバイザ、マイクロサービス・アプリと、Rustの用途はMicrosoft社内で幅広く広がっており、その多くがC++との共存を前提とする。共通バックエンドの存在は、両言語がセキュリティ審査や診断・サービシングのワークフローを同一の基盤で通過できることを意味し、運用上の重複工数を削減する。
この発表はHacker Newsなどでも取り上げられ、「WindowsネイティブにおけるRust/C++共存の現実解」として開発者コミュニティの関心を集めている。
Rust/C++相互運用への取り組みは業界全体で継続中
記事では、コード生成やABIの統一は「相互運用課題の半分に過ぎない」とも述べられている。言語レベルのFFI(外部関数インタフェース)、バインディング、言語セマンティクスの差異、ビルドシステムの統合といった問題は引き続き業界全体の課題だ。
Rust Foundationはこれらを包括する取り組みとしてInteroperability Initiativeを進めており、コミュニティ全体での解決を目指している。
rustc_codegen_utcに関する質問やフィードバックは、Rust Project公式のZulipの専用トピックで受け付けている。
詳細はGuest Post: Rust Is Tier-1 Language at Microsoftを参照していただきたい。