Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.62.0 #3502

Merged
merged 9 commits into from
Feb 21, 2025
Merged

Release 0.62.0 #3502

merged 9 commits into from
Feb 21, 2025

Conversation

kennykerr
Copy link
Collaborator

@kennykerr kennykerr commented Feb 21, 2025

This release includes the following brand new crates:

  • The windows-collections crate defines the Windows collection types like IIterable<T>, IVector<T>, IMap<K, V>, and so on (Introducing the dedicated windows-collections crate #3483). It also includes all of the stock implementations for creating such collections (Stock collection support for IIterable #2346, Stock collection support for IVectorView #2350, Stock collection support for IMapView #2353). This allows these collections to be used without requiring a dependency on the larger windows crate. This crate also provides an optimized implementation of the standard Iterator trait for the Windows IIterator<T> interface (Optimize Iterator for IIterator<T> #3476).

  • The windows-future crate defines the Windows async types like IAsyncAction, IAsyncOperation<T>, and so on (Introducing the dedicated windows-future crate #3490). It also includes all of the stock implementations for creating such async types (Add async ready support #3221, Add async spawn support #3235). This allows these async types to be used without requiring a dependency on the larger windows crate.

  • The windows-link crate provides linker support for Windows (Introducing the windows-link crate #3450). This is the evolution of the older windows-targets crate but is substantially simpler and more versatile thanks to advances in the Rust compiler since the windows-targets crate was unveiled. Notably, it does not depend on or insert any import libs and can be used with custom libraries, not only those provided by the Windows operating system. All of the crates, with the exception of windows-sys, now depend on the new windows-link crate instead of the older windows-targets crate. This greatly simplifies compilation and also greatly reduces the size of dependencies as the windows-link crate is tiny. The windows-bindgen crate defaults to windows-link but also adds the --link option to override this as needed. You may for example want to use --link windows_targets if you need to stick with the windows-targets crate if you cannot change your MSRV to Rust 1.71 or later as that was the first version to stabilize raw-dylib for all Windows targets. This then lets you continue to use windows-bindgen until you are ready to move to a newer version of Rust.

  • The windows-numerics crate defines the Windows numeric types to support graphics-oriented math APIs and calculations (Introducing the dedicated windows-numerics crate #3488). It also also includes all of the stock implementations for overloaded operators and other transformations. This allows these numeric types to be used without requiring a dependency on the larger windows crate.

In addition to these new crates, this release includes major updates to the following existing crates:

In addition, this release also includes minor updates to the following existing crates:

  • The windows-result now includes the BOOL type (Make BOOL a core type #3441) as a core type. This allows this ubiquitous type to be used without requiring a dependency on the larger windows crate.

  • The windows-strings crate now depends on the new windows-link crate instead of the older windows-targets crate.

  • The windows-version crate now depends on the new windows-link crate instead of the older windows-targets crate.

  • The cppwinrt crate includes minor improvements to improve build reliability.

@kennykerr kennykerr merged commit 50e85cb into master Feb 21, 2025
84 checks passed
@kennykerr kennykerr deleted the 0.62.0 branch February 21, 2025 16:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant