[译] Rust 已成为 Microsoft 的一级语言

image

原文: https://rustfoundation.org/media/guest-post-rust-is-tier-1-language-at-microsoft/

到目前为止,Rust 对微软具有战略重要性就不足为奇了。从 Azure 首席技术官 Mark Russinovich 概述我们未来的本机代码战略时大胆的使命宣言,到 Microsoft 在接下来的几年里投资数百万美元支持 Rust 项目。观看去年 RustConf 上 Mark 的主题演讲,了解我们由 Rust 支持的一些核心项目。

如今,Rust 跻身 C++、C# 和 TypeScript 之列,成为 Microsoft 内部开发支持最好的语言之一。 Rust 的这种“一级语言”工程地位意味着为内部团队提供了从本地开发到生产的铺平道路:安全的工具链构建、高效的开发人员工具、高质量的工作流程、深度平台集成以及遵守 Microsoft 软件必须满足的 SDL 要求。

Windows 平台和 MSVC 已经共同发展了数十年,因为 C 和 C++ 一直是我们开发平台的构建块。随着 MSVC 和 Windows 不断开发创新,我们需要确保这些特性和功能在 C++ 和 Rust 上都可用,并且它们之间具有无缝的互操作性。

MSVC 是 Windows 的本机平台编译器,随着 Rust 的使用在 Microsoft 中不断增长,Rust 需要充分参与该生态系统:从固件和驱动程序、内核和虚拟机管理程序到微服务和应用程序。这在 Rust/C++ 混合项目中极其重要。我们实现这一目标最重要的投资之一是 rustc_codegen_utc

介绍 rustc_codegen_utc

rustc_codegen_utc 是 rustc 的替代代码生成后端,与 rustc_codegen_llvmrustc_codegen_gccrustc_codegen_cranelift 属于同一架构系列。它插入相同的后端接口,并将 rustc 的共享编译器机制连接到 MSVC 后端(又名“UTC”)。

它参与更广泛的平台生态系统战略,以支持:

  • 与Windows工具生态系统和ABI高度兼容
  • 二进制强化和代码安全功能
  • 链接后合规性、分析和服务(包括热补丁)
  • 适用于混合项目的无缝 Rust/C++ 互操作
  • 跨语言内联、优化和 SPGO(样本配置文件引导优化)
  • 调试和故障转储分析
  • 分析、诊断和覆盖范围

这些功能和工作流程是通过 MSVC 技术堆栈多年构建的。将 rustc 连接到该后端可以让 Rust 在相同的平台投资上构建,具有开箱即用的完美兼容性,而不需要并行实现每个 Windows 特定的功能。
结果是在 Windows 上为 Rust 和 C++ 提供了统一的代码生成平台。

Rust 和 C++ 的本机平台演变

Microsoft 的生产软件经过广泛的安全和质量工作流程。 Rust 已成为 Microsoft 的一级语言,但经过数十年的发展,C++ 仍然占据主导地位。使用统一的代码生成平台将使我们的维护和演进成本最小化。 MSVC 和 Windows 不断创新。新的代码生成功能、安全功能、诊断和服务技术一直在添加。

通过 rustc_codegen_utc,这些投资落在了 C++ 和 Rust 的共同基础上。这在操作上很重要,因为它减少了重复的工程,但在战略上也很重要:Rust 直接参与微软的 Windows 原生工程生态系统。

这对于混合 Rust/C++ 项目尤其有价值,并且许多系统将在未来几年使用这两种语言。共享后端为这些系统双方平等参与所有开发工作流程奠定了基础。

这种对齐方式是 rustc_codegen_utc 存在的主要原因之一。它使 Rust 能够满足 Microsoft 团队已经构建、验证、诊断和维护 Windows 软件的环境的工程期望。

更强大的 Rust 和 C++ 互操作基础

在其他平台上,如果混合 Rust/C++ 项目使用 Clang 构建其 C++ 代码,则两种语言已经可以达到相同的 LLVM 代码生成平台。 rustc_codegen_utc 为 Windows 本机 C++ 项目创建相同的共享后端机会,其中 MSVC 是本机平台编译器。

Codegen、平台特性、ABI、EH 和链接后工具只是互操作挑战的一半。高质量语言级互操作、FFI 合约、绑定、语言语义差异……以及构建系统只是我们在内部和整个行业解决的一些问题。请参阅 Rust 基金会的互操作性计划,快速浏览问题空间和正在进行的社区工作:
https://rustfoundation.org/interop-initiative/

作为 Microsoft Rust“铺设路径”(Paved Path)计划的一部分进行推广

rustc_codegen_utc 是 Microsoft DevDiv 专门团队的一项重大投资,自 2026 年初以来已做好生产准备。它自 Rust 1.90 以来一直自行托管,是更广泛的内部 Rust 平台的一部分,该平台包括 rustc 的安全供应链构建、标准库、相关工具、与本地开发的集成、生产管道以及我们工程系统中的通用质量和合规工作流程。

目前已有 100 多个 Microsoft 项目存储库使用它构建。随着越来越多的存储库采用它,这种推出每周都会继续。

这是 Microsoft 对 Rust 整个工程生命周期持续投资的一部分:采购、工具、质量、安全、平台集成、生产部署和长期支持。

rustc_codegen_utc 是该旅程的主要部分。它的区别很简单:它将 rustc 连接到 Microsoft 数十年来围绕 Windows 构建的本机后端和平台生态系统。

这为我们为 Rust 和 C++ 提供了统一的基础,为 Windows 平台投资提供了实现这两种语言的途径,并为 Microsoft 将继续构建的混合原生系统奠定了更强大的基础。

如果您想提出问题或与我们分享反馈,请加入 Rust 项目 Zulip 上的专门讨论主题

作者: Victor Ciura
Victor Ciura 是 Microsoft DevDiv/CoreAI Rust 工具团队的首席工程师,负责构建整个组织和开源社区中更广泛的氧化工作所需的编译器工具链和库。 Victor 在过去 25 年里一直在各个团队中使用 C++ 进行系统编程,例如:Visual C++ (DevDiv)、Advanced Installer、Clang Power Tools。他是母校计算机科学系的常客,使用现代 C++、Rust、Haskell 为学生举办有关算法和优化技术的讲座和研讨会。

posted @ 2026-09-11 09:59  WAKU  阅读(75)  评论(0)    收藏  举报