By now it’s no surprise that Rust is of strategic importance to Microsoft. From bold mission statements when Azure CTO Mark Russinovich outlined our future strategy for native code, to millions of dollars invested by Microsoft into supporting the Rust Project, over the following years. Watch Mark’s keynote from last year’s RustConf to get a glimpse of some of our core projects powered by Rust.
Today, Rust sits among C++, C#, and TypeScript as one of the best-supported languages for internal development at Microsoft. This “Tier-1 language” engineering status for Rust means giving internal teams a paved path from local development to production: secure toolchain builds, productive developer tooling, quality workflows, deep platform integration, and compliance with the SDL requirements Microsoft software must meet.
The Windows platform and MSVC have co-evolved for decades, as C and C++ have been the building blocks of our dev platform. As MSVC and Windows develop innovations, we need to ensure that these features and functionality are available across both C++ and Rust, and that we have seamless interoperability between them.
MSVC is the native platform compiler for Windows, and Rust needs to participate fully in that ecosystem as its usage grows across Microsoft: from firmware and drivers, kernel and hypervisors, to microservices and apps. This is extremely important in hybrid Rust/C++ projects. One of our most important investments towards this goal is rustc_codegen_utc .
Introducing rustc_codegen_utc
rustc_codegen_utc is an alternative code generation backend for rustc, in the same architectural family as rustc_codegen_llvm , rustc_codegen_gcc and rustc_codegen_cranelift . It plugs into the same backend interface and connects rustc’s shared compiler machinery to the MSVC backend (aka “UTC“).
It participates in a broader platform ecosystem strategy to support:
High compatibility with the Windows tooling eco-system and ABI
Binary hardening and code security features
Post-link compliance, analysis, and servicing (including Hotpatch)
... continue reading