プログラミング
MicrosoftにおけるRustのTier-1言語としての地位
Rust Is Tier-1 Language at Microsoft (rustfoundation.org)
要約
MicrosoftはRustをC++、C#、TypeScriptと並ぶ「Tier-1言語」として公式に認定しました。これにより、Rust開発者はセキュアなツールチェーン、生産性の高い開発ツール、品質ワークフロー、深いプラットフォーム統合、そしてSDL要件への準拠といった、Microsoftの内部開発チームが利用できる充実した開発パスを利用できるようになります。特に、Windowsプラットフォームとのシームレスな相互運用性を実現するため、新しいコードジェネレーターバックエンドであるrustc_codegen_utcが導入されました。
全文翻訳
ゲスト投稿:MicrosoftにおけるRustはTier-1言語
2026年9月10日 / Victor Ciura
RustがMicrosoftにとって戦略的に重要であることは、今さら驚くことではありません。Azure CTOのMark Russinovichがネイティブコードの将来戦略を概説した際の断固たるミッションステートメントから、MicrosoftがRustプロジェクトを支援するために数百万ドルを投資してきた数年間まで。昨年のRustConfでのMarkの基調講演を見れば、Rustで動いている私たちのコアプロジェクトの一部を垣間見ることができます。
今日、RustはC++、C#、TypeScriptと共に、Microsoftにおける内部開発で最もサポートされている言語の1つとして位置づけられています。Rustのこの「Tier-1言語」エンジニアリングステータスは、内部チームにローカル開発から本番環境への整備されたパスを提供することを意味します。これには、セキュアなツールチェーンビルド、生産性の高い開発者ツール、品質ワークフロー、深いプラットフォーム統合、そしてMicrosoftソフトウェアが満たすべきSDL要件への準拠が含まれます。
WindowsプラットフォームとMSVCは数十年にわたって共に進化してきました。CとC++は私たちの開発プラットフォームのビルディングブロックでした。MSVCとWindowsがイノベーションを進めるにつれて、これらの機能がC++とRustの両方で利用可能であることを保証し、それらの間のシームレスな相互運用性を持つ必要があります。MSVCはWindowsのネイティブプラットフォームコンパイラであり、Microsoft全体でRustの使用が増加するにつれて、Rustはこのエコシステムに完全に参加する必要があります。これは、ファームウェアやドライバ、カーネルやハイパーバイザーから、マイクロサービスやアプリまで多岐にわたります。これはハイブリッドRust/C++プロジェクトにおいて非常に重要です。
この目標に向けた私たちの最も重要な投資の1つが、rustc_codegen_utcです。
rustc_codegen_utcの紹介
rustc_codegen_utcは、rustc_codegen_llvm、rustc_codegen_gcc、rustc_codegen_craneliftと同様のアーキテクチャファミリーに属する、rustcの代替コード生成バックエンドです。これは同じバックエンドインターフェースにプラグインし、rustcの共有コンパイラ機構をMSVCバックエンド(別名「UTC」)に接続します。
これは、より広範なプラットフォームエコシステム戦略の一部として、以下をサポートします。
* WindowsツールエコシステムおよびABIとの高い互換性
* バイナリの強化とコードセキュリティ機能
* ポストリンクコンプライアンス、分析、およびサービス(ホットパッチを含む)
* ハイブリッドプロジェクトのためのシームレスなRust/C++相互運用性
* クロス言語インライン化、最適化、およびSPGO(サンプルプロファイルガイド最適化)
* デバッグおよびクラッシュダンプ分析
* プロファイリング、診断、およびカバレッジ
これらの機能とワークフローは、MSVC技術スタックで長年にわたって構築されてきました。rustcをそのバックエンドに接続することで、Rustは、Windows固有のすべての機能を並行して実装する必要なく、既存のプラットフォーム投資を基盤として、すぐに完璧な互換性を得ることができます。結果として、Windows上のRustとC++のための統一されたコード生成プラットフォームが実現します。
RustとC++のためのネイティブプラットフォーム進化
Microsoftのプロダクションソフトウェアは、広範なセキュリティおよび品質ワークフローを経て展開されます。RustはMicrosoftでTier-1言語になりましたが、数十年の開発を経てC++が依然として支配的です。統一されたコードジェネレータープラットフォームを使用することで、メンテナンスと進化のコストを最小限に抑えることができます。
MSVCとWindowsはイノベーションを続けています。新しいコード生成機能、セキュリティ機能、診断、およびサービス技術が常に常に追加されています。rustc_codegen_utcにより、これらの投資はC++とRustの両方にとって共通の基盤に適用されます。これは運用上、重複するエンジニアリングを削減するため重要ですが、戦略的にも重要です。Rustは、MicrosoftのWindowsネイティブエンジニアリングエコシステムに直接参加します。これは、ハイブリッドRust/C++プロジェクトにとって特に価値があり、多くのシステムが今後何年も両方の言語を使用するでしょう。共有バックエンドは、これらのシステムの双方がすべての開発ワークフローに平等に参加するための基盤を作成します。
この連携は、rustc_codegen_utcが存在する主な理由の1つです。これにより、RustはMicrosoftチームが既にWindowsソフトウェアを構築、検証、診断、およびサービスしている環境のエンジニアリング期待に応えることができます。
より強力なRustとC++の相互運用性基盤
他のプラットフォームでは、ハイブリッドRust/C++プロジェクトがC++コードをClangでビルドする場合、両方の言語が同じLLVMコード生成プラットフォームに到達できます。rustc_codegen_utcは、MSVCがネイティブプラットフォームコンパイラであるWindowsネイティブC++プロジェクトのために、同様の共有バックエンドの機会を創出します。
コードジェネレーション、プラットフォームの癖、ABI、EH、およびポストリンクツールは、相互運用性の課題の半分にすぎません。高忠実度の言語レベルの相互運用性、FFI契約、バインディング、言語セマンティクスの違い…そしてビルドシステムは、私たちが社内外で取り組んでいる問題のほんの一部です。Rust FoundationのInteroperability Initiativeを参照して、問題空間と進行中のコミュニティの取り組みを簡単に確認してください:https://rustfoundation.org/interop-initiative/
Microsoft Rust Paved Pathの一部としてのロールアウト
rustc_codegen_utcは、Microsoft DevDivの専任チームによる大規模な投資であり、2026年初頭から本番稼働可能でした。Rust 1.90以降、セルフホストされており、Rustコンパイラ、標準ライブラリ、関連ツールのセキュアなサプライチェーンビルド、ローカル開発との統合、本番パイプライン、そしてエンジニアリングシステムにおける共通の品質・コンプライアンスワークフローを含む、より広範な内部Rustプラットフォームの一部となっています。今日、100以上のMicrosoftプロジェクトリポジトリがこれでビルドされています。このロールアウトは、より多くのリポジトリが採用するにつれて毎週継続しています。
これは、Rustのエンジニアリングライフサイクル全体(取得、ツール、品質、セキュリティ、プラットフォーム統合、本番展開、長期サポート)への継続的な投資の一部です。rustc_codegen_utcはその旅の主要な部分です。その差別化要因は単純です。rustcを、MicrosoftがWindowsを中心に数十年にわたって構築してきたネイティブバックエンドとプラットフォームエコシステムに接続します。これにより、RustとC++のための統一された基盤、Windowsプラットフォームへの投資が両方の言語に到達するパス、そしてMicrosoftが今後も構築し続けるハイブリッドネイティブシステムのためのより強力な基盤が得られます。
質問がある場合やフィードバックを共有したい場合は、Rust ProjectのZulipにあるこの専用ディスカッショントピックに参加してください。
投稿者:Victor Ciura
Victor Ciuraは、Microsoft DevDiv/CoreAIのRustツールチームのプリンシパルエンジニアであり、組織全体およびオープンソースコミュニティにおける広範な酸化(oxidation)努力に必要なコンパイラツールチェーンとライブラリを構築しています。Victorは過去25年間、Visual C++ (DevDiv)、Advanced Installer、Clang Power Toolsなどのチームで様々なシステムプログラミングをC++で行ってきました。彼は母校のコンピュータサイエンス学科に定期的にゲストとして招かれ、最新のC++、Rust、Haskellを使用したアルゴリズムと最適化技術に関する学生向けの講義とワークショップを行っています。