
Microsoft officially promoted Rust to Tier-1 at RustConf in September — but if you read the headline and moved on, you missed the part that actually matters. The announcement wasn’t just a title change. Microsoft engineers built a custom Rust compiler backend called rustc_codegen_utc that wires Rust’s compiler directly into the same internal engine that has powered MSVC’s C++ compilation for decades. That unlocks things that were C++-only on Windows: hotpatch support, cross-language inlining, unified crash analysis. This is not optics. It is infrastructure.
What rustc_codegen_utc Actually Does
Before this backend, Rust on Windows worked like Rust everywhere else: the compiler generated LLVM IR, LLVM turned that into object files, and Windows linker tools did the rest. That pipeline works, but it means Rust binaries on Windows lack access to Microsoft’s native platform investments — the ones baked into MSVC’s internal codegen backend, which Microsoft calls UTC, for Universal Tuple Compiler.
rustc_codegen_utc changes the path entirely. Instead of routing through LLVM, the Rust compiler now feeds into UTC — the same C2.DLL that compiles C++ for Windows. Rust and C++ share a code generation pipeline. The practical consequences:
- Cross-language inlining — A Rust function calling a C++ function (or vice versa) can now be inlined across the language boundary. This was impossible when they ran through different backends.
- Hotpatch support — Rust DLLs can be patched in-place without restarting the process, the same way Windows services handle rolling updates for C++ modules today.
- SPGO — Sample-based Profile Guided Optimization now works across both languages in the same binary.
- Unified tooling — WinDbg, crash dump analysis, ETW profiling, and code coverage treat Rust and C++ identically because they go through the same pipeline.
The backend has been production-ready since early 2026 and self-hosted since Rust 1.90. More than 100 Microsoft repositories already use it. There is one significant catch: rustc_codegen_utc is currently internal-only and not open source. External Windows developers are still on the LLVM backend. Microsoft has not committed to open-sourcing UTC codegen.
What “Tier-1” Means Beyond the Label
Tier-1 status at Microsoft means Rust teams get the same infrastructure C++ teams have always had: secure compiler builds, CI/CD workflow templates, and — critically — Security Development Lifecycle (SDL) compliance built in. That last item matters more than it sounds. In Microsoft’s engineering process, SDL compliance is a precondition for shipping. Teams previously trying to adopt Rust had to handle SDL validation themselves, a significant friction point for regulated products. Tier-1 removes that obstacle.
Victor Ciura, principal engineer on Microsoft’s Rust tooling team, put it plainly at RustConf in Montreal: “Rust now is a Tier One language at Microsoft, and that just means that it sits among C++, C# and TypeScript as the best supported languages for internal development.” The business case is less modest — approximately 70% of Windows CVEs are memory-safety issues. Rust directly addresses that class of bug.
Where Rust Already Runs in Microsoft Products
This is not a future commitment. Rust is already shipping in production at Microsoft’s scale:
- Microsoft 365 services including Outlook, Word, Excel, OneDrive, and SharePoint contain Rust components
- The Windows kernel includes Rust code in
win32kbase_rs.sys(the kernel-mode window manager) and GDI+ rendering - Surface PCs ship Rust-written drivers signed through Microsoft’s own driver-signing keys
- Parts of the Copilot inference stack are written in Rust
The CrowdStrike incident in July 2024 — when a faulty C++ kernel driver crashed 8.5 million Windows machines simultaneously — accelerated this trajectory considerably. That event made the abstract argument for memory-safe kernel code very concrete. Microsoft’s kernel Rust push has been ongoing since 2023, but the pace increased sharply after that incident.
The Honest Limitations
A clear-eyed read of this announcement requires acknowledging two things. First, rustc_codegen_utc is only available inside Microsoft. External developers building Rust applications for Windows get none of the UTC benefits — no hotpatch, no cross-language inlining, no unified Windows profiling. They are on LLVM, same as always. Microsoft may open-source the UTC backend eventually, but there is no commitment or timeline.
Second, the Rust-C++ interop boundary is still unsafe. The compiler cannot protect pointers into C++-allocated memory. Every call site across that boundary is a potential vulnerability. The cxx crate reduces the surface area, but it does not eliminate the risk. Tier-1 status does not change this.
What Windows Developers Should Do Now
If you are evaluating Rust for Windows development, the practical approach is to start at system boundaries — components with narrow interfaces that handle untrusted input (parsers, protocol handlers, file format processing). Budget explicitly for Rust-specific CI caching and define a dependency review policy upfront. Plan for Rust-specific hiring rather than assuming C++ engineers will transition naturally.
Microsoft is the last major OS vendor to reach this milestone. Google shipped Rust in the Android kernel in 2021; Rust drivers landed in Linux 6.1 in 2022. The fact that Microsoft built a custom compiler backend rather than leaning harder on LLVM is telling: they wanted something that fits inside the existing Windows toolchain, not something that sits beside it. For teams already inside that toolchain, the benefits are real. For everyone outside it, the signal is clear even if the tooling isn’t there yet.













