Skip to content

Rust for Windows – 2025 Year in Review #3830

@kennykerr

Description

@kennykerr

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

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-collections for iterable collections like IIterable, IVector, and IMap.
    • windows-future for async operations such as IAsyncAction and IAsyncOperation, complete with optimized iterators and COM marshaling support.
    • windows-link (now at 72,434,378 downloads) for simplified linker support via raw-dylib, eliminating the need for import libraries and replacing windows-targets in most crates.
    • windows-numerics for graphics math types, including matrix operations like scale and skew on Matrix3x2.
  • March (v63): Enhanced windows-bindgen with COM marshaling for delegates, automatic Default derivation, 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 debuted windows-services for service management and windows-threading for robust threading primitives.
  • June (v66): Released cppwinrt updates aligning with the latest C++/WinRT compiler, plus fixes for metadata breaking changes in windows-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 in windows-registry, and introduced OS revision querying in windows-version.
  • Tooling Improvements: windows-bindgen gained --specific-deps for 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-link for cross-architecture compatibility, removed unnecessary dependencies like ole32.dll, and added Windows on Arm testing. Async continuations in windows-future now include join and when functions, while windows-threading offers 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-bindgen enhancements, 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

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!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions