Теперь, когда разработчики и инженеры Microsoft приступают к написанию кода, они могут выбрать Rust — язык, который Редмонд добавил в свой список канонических.
«Rust теперь является языком первого уровня в Microsoft, что означает, что он входит в число лучших поддерживаемых языков для внутренней разработки в компании наряду с C++, C# и TypeScript», — пояснил Виктор Чюра, ведущий инженер Microsoft в команде инструментов Rust, во время основного доклада на ежегодной конференции RustConf, проходящей на этой неделе в Монреале.
Чюра отметил, что Microsoft «проложила путь» с помощью инструментов и процессов, поддерживающих локальную разработку на Rust на протяжении всего жизненного цикла разработки программного обеспечения.
Rust не является новинкой для Microsoft: он уже присутствует более чем в 100 репозиториях проектов компании. Microsoft разработала Oxidizer — набор крейтов для создания масштабируемых сервисов на Rust, которые использовались для создания и совершенствования основных сервисов Microsoft 365 (M365), таких как Outlook, Word, Excel, OneDrive и SharePoint. Технологический стек Copilot также во многом обязан Rust.
Однако самая сложная работа еще впереди. Учитывая недавний шквал исправлений в рамках Windows Patch Tuesday, несомненно, одним из основных применений Rust станет исправление уязвимого кода Windows, написанного на C/C++.
Именно для этой работы и был создан Rust. Разработчик Mozilla Грейдон Хоар создал Rust в 2006 году как побочный проект, в первую очередь как высокопроизводительный язык, который, в отличие от C и C++, защищал от ошибок памяти.
С тех пор переписывание программ на Rust для повышения производительности и минимизации ошибок стало обычной задачей для руководителей проектов, которые «рустифицировали» всё: от баз данных до менеджеров пакетов, часто с помощью ИИ.
Новые возможности
Редмонд уже проделал значительную работу, чтобы Rust удобно интегрировался с Microsoft Visual C++ (MSVC) — собственной платформой для компиляции бинарных файлов Windows.
В частности, инженеры компании создали rustc_codegen_utc — пользовательский бэкенд для генерации кода компилятора Rust, который напрямую связывает компилятор rustc с внутренним инструментарием MSVC для Windows.
«Подключение rustc к этому бэкенду позволяет Rust использовать те же платформенные инвестиции с идеальной совместимостью «из коробки», вместо того чтобы требовать параллельной реализации каждой специфичной для Windows возможности», — написал Чюра в своем блоге, подробно описывающем усилия Редмонда в области Rust. «В результате мы получили унифицированную платформу генерации кода для Rust и C++ в Windows».
Висячие указатели и чужой код
Даже при тесной интеграции Rust инженерам Microsoft предстоит немало работы. Одной из повторяющихся тем на RustConf в этом году является борьба с опасной «небезопасной» территорией, которая возникает при смешивании кода Rust и C++. Хотя компилятор Rust может обнаруживать ошибки памяти, он обычно не охватывает указатели на выделенные в C++ области памяти.
Тем не менее, переход Редмонда на Rust — долгожданное событие. В своем основном докладе на RustConf 2025 технический директор Microsoft Azure Марк Руссинович отметил, что около 70% CVE в Windows связаны с проблемами памяти.
«Я давно понял, что как бы сильно мы ни хотели улучшить C и C++, мы не сможем сделать их такими же хорошими, как то, с чего начинает Rust», — сказал он. ®
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Joab Jackson




