ニュース

Microsoftで「Rust」が“Tier-1言語”に ~「C++」「C#」「TypeScript」と並ぶ扱いへ

「MSVC」のバックエンドにつなぐ「rustc_codegen_utc」に大きな投資

「Guest Post: Rust Is Tier-1 Language at Microsoft」

 プログラミング言語「Rust」が、Microsoftの社内開発における“Tier-1言語”になったとのこと。今後は「C++」「C#」「TypeScript」と並び、手厚くサポートされる言語として位置付けられる。同社のVictor Ciura氏がRust Foundationに寄稿した記事で明かされた。

 「Rust」言語は近年、システム開発言語として注目を浴びている。所有権や借用の仕組みによってメモリ安全性を高めており、メモリ破壊の脆弱性が紛れ込む余地が少なく、それでいて「C++」言語と同程度の速度を期待できるためだ。MicrosoftもWindowsカーネル(Win32k)やフォントの解析処理で「Rust」を採用しており、「Chromium」プロジェクトでも画像デコーダーを「Rust」実装にする取り組みをGoogleとともに進めている。

 「Rust」がMicrosoftの“Tier-1言語”になるということは、「C++」「C#」や「TypeScript」と同様、ローカル開発から本番環境まで一貫したサポートを受けられるということを意味する。セキュアなツールチェーン、開発ツール、品質管理、プラットフォームとの深い統合などが整備され、Microsoftのソフトウェアが満たすべき「SDL」(Security Development Lifecycle)要件にも準拠するようになる。コミュニティの貢献だけに頼るのではなく、Microsoft自身が自社で用いるのにふさわしい水準で「Rust」を磨き上げるというわけだ。

 なかでも、同社が大きな投資を行っているのが、「rustc_codegen_utc」と呼ばれるコンパイラーバックエンドだ。「Rust」コンパイラー(rustc)を、Windowsネイティブの「MSVC」(Microsoft Visual C++)コード生成基盤(UTC)へ接続することで、以下を実現する。

  • Windowsのツールチェーン、ABIとの高い互換性
  • バイナリの堅牢化とコードのセキュリティ機能
  • ホットパッチを含む、リンク後のコンプライアンス・解析・保守
  • RustとC++のシームレスな相互運用
  • 言語をまたいだインライン化、最適化、「SPGO」(サンプルプロファイルに基づく最適化)
  • デバッグとクラッシュダンプの解析
  • プロファイリング、診断、カバレッジ

 「Rust」と「C++」で共通のコード生成基盤を構築できれば、長年かけて築かれてきた「MSVC」の技術スタックを「Rust」でも活用できる。つまり、Windows固有の最適化やセキュリティ、診断・保守の機能を「Rust」向けに別途実装する負担を減らし、「C++」と共通の基盤を活用できるというわけだ。

 「rustc_codegen_utc」はMicrosoft開発者部門(DevDiv)の専任チームによる大きな投資で、2026年初頭から製品レベルで利用できる状態にあるという。同バックエンドを使うツールチェーンは「Rust 1.90」以降、セルフホスト(自身を使って自身をビルドすること)を実現しており、現在は社内の100を超えるリポジトリがこれを用いてビルドされているとのこと。採用するリポジトリも、毎週増え続けているという。