Skip to content

windows-rs provides Rust crates for Windows APIs, from COM support and system services to UI and raw bindings.

Prefer the focused crates below when they cover the functionality you need. For additional APIs, windows-bindgen can generate a minimal project-specific binding, while windows and windows-sys provide broad API coverage behind feature flags.

Each crate page covers usage and maintenance. Generated API documentation is available on docs.rs.

Crates

Core types and interop

Crate Description
windows-core COM and WinRT types, traits, and authoring macros.
windows-result Windows error handling and propagation.
windows-strings Windows string types, conversions, and macros.
windows-link Links C-style functions without import libraries.

Values and collections

Crate Description
windows-collections WinRT collections.
windows-numerics Graphics vectors and matrices.
windows-reference Implementation of WinRT IReference<T>.
windows-time WinRT DateTime and TimeSpan types.

Async and threading

Crate Description
windows-future WinRT asynchronous operations as Rust futures.
windows-threading Safe wrapper over the Win32 thread pool.

System services

Crate Description
windows-registry Safe Windows registry access.
windows-services Support for authoring Windows services.
windows-version Queries the Windows version at runtime.

UI and graphics

Crate Description
windows-reactor Declarative UI library backed by WinUI 3.
windows-canvas 2D graphics built on Direct2D.
windows-composition Windows composition visuals.
windows-webview Safe wrapper around the WebView2 browser control.
windows-window Window creation and message dispatch.
windows-animation Wrapper around the Windows Animation Manager.
windows-reactor-setup Stages the Windows App Runtime.

Code generation and metadata

Crate Description
windows-clang Generates RDL from C and C++ headers using libclang.
windows-default Embedded Windows metadata for build tools.
windows-metadata Reads and writes ECMA-335 metadata.
windows-rdl Parses RDL and generates ECMA-335 metadata.
cppwinrt Packages the C++/WinRT compiler.

Macro implementation

These crates implement macros exported by windows-core. Applications should use the windows-core exports rather than depend on them directly.

Crate Description
windows-implement Implements the #[implement] macro.
windows-interface Implements the #[interface] macro.

Windows API bindings

Use these crates when the focused crates above do not cover the APIs you need.

Crate Description
windows-bindgen Generates Rust bindings from Windows metadata.
windows Typed bindings for C-style, COM, and WinRT APIs.
windows-sys Raw bindings for C-style Windows APIs.

About

Rust for Windows

Resources

Code of conduct

Contributing

Security policy

Stars

12.7k stars

Watchers

118 watching

Forks

Releases

Used by

Contributors

Languages