-
Notifications
You must be signed in to change notification settings - Fork 590
Description
Hello, Rustaceans and Windows developers!
As 2025 draws to a close, it's time to reflect on another incredible year for the Rust for Windows project. We've continued to push the boundaries of safe, idiomatic Rust bindings for the Windows ecosystem, empowering developers to build efficient and reliable applications and components with confidence. From groundbreaking metadata tooling to explosive growth in crate adoption, this year has been marked by innovation and community momentum. Let's dive into the highlights.
Quick links
- Repo: https://github.com/microsoft/windows-rs
- Getting started: https://kennykerr.ca/rust-getting-started/
- Samples: https://github.com/microsoft/windows-rs/tree/master/crates/samples
- Releases: https://github.com/microsoft/windows-rs/releases
- Feature search: https://microsoft.github.io/windows-rs/features/
Key accomplishments
2025 saw the release of 11 major updates (from v61 in January to v71 in October), delivering a wealth of new features, bug fixes, and performance enhancements. Our focus remained on expanding API coverage, improving developer ergonomics, and laying the groundwork for metadata-driven workflows. Here's a snapshot of the year's milestones:
New crates and foundational tools
- February (v62): Introduced four new crates to modularize core Windows abstractions:
windows-collectionsfor iterable collections likeIIterable,IVector, andIMap.windows-futurefor async operations such asIAsyncActionandIAsyncOperation, complete with optimized iterators and COM marshaling support.windows-link(now at 72,434,378 downloads) for simplified linker support viaraw-dylib, eliminating the need for import libraries and replacingwindows-targetsin most crates.windows-numericsfor graphics math types, including matrix operations likescaleandskewonMatrix3x2.
- March (v63): Enhanced
windows-bindgenwith COM marshaling for delegates, automaticDefaultderivation, and nested struct layout detection. Added Miri testing for safer unsafe code. - May (v64): Launched
windows-metadata, a full-featured ECMA-335 reader and writer for .NET, WinRT, and Win32 metadata—unlocking programmatic API generation and inspection. Also debutedwindows-servicesfor service management andwindows-threadingfor robust threading primitives. - June (v66): Released
cppwinrtupdates aligning with the latest C++/WinRT compiler, plus fixes for metadata breaking changes inwindows-sys. - July (v68): Major overhaul of
windows-services(v0.25.0) with support for hosting, testing, fallback mechanisms, and extended commands.
Feature enhancements and fixes
- API Expansions: Refreshed Windows metadata in
windows(v0.62.0), added volatile registry key support and rename operations inwindows-registry, and introduced OS revision querying inwindows-version. - Tooling Improvements:
windows-bindgengained--specific-depsfor precise dependency targeting, better diagnostics, method overloading, and reduced transmutes. Enforced Clippy linting across all crates for higher code quality. - Performance and Compatibility: Standardized on
windows-linkfor cross-architecture compatibility, removed unnecessary dependencies likeole32.dll, and added Windows on Arm testing. Async continuations inwindows-futurenow includejoinandwhenfunctions, whilewindows-threadingoffers pool scopes for lifetime management. - Bug Fixes: Addressed Cargo vendoring issues, calling convention warnings, circular dependencies, and nightly Clippy lints. Introduced package validation workflows and unified documentation.
These updates represent hundreds of commits from our contributors, expanding safe access to Win32 and Nano-COM APIs—the backbone of the Windows platform.
Impressive stats
The Rust for Windows ecosystem continues to thrive, with unprecedented download numbers reflecting its adoption in production workloads:
| Crate | Total Downloads | Notes |
|---|---|---|
| Overall | 5,132,447,397 | Cumulative across all crates— a testament to broad ecosystem impact. |
| windows-link | 72,434,378 | Brand-new in 2025; already a go-to for simplified linking. |
| windows-sys | 543,472,108 | Flagship low-level bindings, powering countless projects. |
| windows-registry | 49,685,669 | Targeted utility for registry operations, seeing steady growth. |
These figures underscore how Rust for Windows is becoming an indispensable tool for cross-platform developers targeting the Windows ecosystem.
Looking ahead: Metadata-first revolution
As we enter 2026, our north star is a metadata-first approach to library and tooling development. With the full ECMA-335 capabilities now live in the windows-metadata crate, we're poised to transform how Rust developers author and consume Windows APIs.
- First-Class Win32 and Nano-COM Support: Expect a suite of libraries, tools, and capabilities for metadata-driven API generation, enabling seamless, type-safe interactions with the core Windows platform. This includes automated bindgen pipelines, validation suites, and IDE integrations to make Win32 and Nano-COM feel native in Rust.
- Tooling Ecosystem: Building on
windows-bindgenenhancements, we hope to deliver user-friendly CLI and library tools for metadata inspection, diffing, and evolution—reducing boilerplate and accelerating development cycles. - Community and Integration: Deeper ties with the Rust toolchain, expanded samples, and contributions to the Rust for Windows book. We're committed to making these APIs the gold standard for safe, efficient Windows programming.
Join us in this exciting shift—whether by contributing to tooling prototypes or testing early releases. Your feedback shapes the future!
Get involved
- Star and fork the repo: microsoft/windows-rs
- Dive into the docs: Rust for Windows Book
- Chat with us by opening an issue for ideas.
- Try it out or learn more on YouTube Part 1, Part 2, Part 3
Thanks to every contributor, user, and evangelist who made 2025 a banner year. Here's to safer, faster Windows apps in Rust—cheers to 2026!