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.
| 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. |
| 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. |
| Crate | Description |
|---|---|
| windows-future | WinRT asynchronous operations as Rust futures. |
| windows-threading | Safe wrapper over the Win32 thread pool. |
| Crate | Description |
|---|---|
| windows-registry | Safe Windows registry access. |
| windows-services | Support for authoring Windows services. |
| windows-version | Queries the Windows version at runtime. |
| 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. |
| 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. |
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. |
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. |