NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4980 most downloaded on crates.io
Allows downloading and repacking the MSVC CRT and Windows SDK for cross compilation
Last release 1 months ago
12 Aug 2026
Release timing varies
gaps range from 2 weeks to 8 months
Nearly every release is documented
notes for 43 of 43 stable releases
3 versions withdrawn
withdrawn after publishing
5 years old
48 releases · first in 2021
One column per quarter.
PR#167 additionally installs onecore-uap headers for each architecture since some headers have been moved to them.
PR#175 resolved #174 by adjusting channel names when using version 18+ due to MS changing them for whatever reason.
PR#170 removed the native-tls and rustls-tls feature flags, rustls is now used as the TLS implementation unconditionally.
native-tls and rustls-tls feature flags, rustls is now used as the TLS implementation unconditionally.rustls-platform-verifier is used for certificate validation. Previously webpki-roots was used, but this meant hostile corporate networks that middle man HTTPS traffic would cause failures.PR#161 fixed the casing for --winsysroot splatting.
PR#160 resolved #126 by ignoring MSI installers that don't reference any cabinet files. Why do such utterly fucking useless installers exist? Because
PR#143 is a second attempt to resolve #141 by switching to a new 3.0.0-rc1 version of ureq that might not have the same issue, as well as adding suppo
3.0.0-rc1 version of ureq that might not have the same issue, as well as adding support for retries for EOF I/O errors seen by users which can be configured via --http-retry or XWIN_HTTP_RETRY.--include-debug-runtime to download the debug runtime binaries that are not provided by wine. Thanks @superewald!PR#143 is a second attempt to resolve #141 by switching to a new 3.0.0-rc1 version of ureq that might not have the same issue, as well as adding suppo
PR#142 is an attempt to resolve #141 by switching from ureq to reqwest .
PR#137 fixes the fix introduced in PR#136 .
PR#136 fixed an issue introduced in PR#131 where symlink disabling when a case-insensitive file system was detected was...not being respected. At all.
PR#134 added back onecoreuap headers that were moved from the main SDK header package in recent versions of the SDK. Thanks @tomager!
PR#131 resolved #130 by adding detection of case-insensitive file systems, which then disables symlink creation since it is not needed, and breaks.
PR#129 fixed #128 by adding the additional onecoreuap MSI package that contains headers that were previously (before SDK 10.0.26100) part of other MSI
PR#123 (a rework of #119) adds the ability to splat in the format understood by clang-cl /winsysroot option.
PR#117 updated a few crates, notably zip.
zip.PR#116 (a rework of #115) improves the speed of the x86_64-unknown-linux-musl binary by using mimalloc.
PR#110 changed how Ctx is built. It was getting too complicated to support niche use cases, some of which didn't belong in a library (like reading env
Ctx is built. It was getting too complicated to support niche use cases, some of which didn't belong in a library (like reading environment variables), so this functionality has been completely removed. Instead, one must pass in a ureq::Agent that is fully configured how the user wants it.xwin binary instead of the library, as well as its name https_proxy -> HTTPS_PROXY, and added it to an an option on the command line.PR#108 resolved #107 by fixing the Window symlink code added in PR#105 and only using it in the two cases it was needed.
PR#101 resolved #28, #84, and #85 by adding a minimize command that straces a cargo build to write a map file that can be used by a splat command to o
minimize command that straces a cargo build to write a map file that can be used by a splat command to only splat the headers and libraries actually needed to build, drastically reducing the splat output (eg. 1.3GiB -> 101MiB). This map file also allows the creation of symlinks on a per-file basis, allowing users to create their own symlinks if needed.SSL_CERT_FILE, CURL_CA_BUNDLE, or REQUESTS_CA_BUNDLE environment variables. xwin must be compiled with the native-tls feature for this to function. Thanks @Owen-CH-Leung!PR#99 changed the default VS manifest version from 16 -> 17. You can preserve the old behavior by passing --manifest-version 16 on the cmd line.
--manifest-version 16 on the cmd line.PR#93 added the ability to specify a download timeout for each individual download, and changed the default from infinite to 60 seconds, so that xwin
PR#93 added the ability to specify a download timeout for each individual download, and changed the default from infinite to 60 seconds, so that xwin
PR#90 fixed a problem caused by PR#87.
PR#87 added binaries for aarch64-unknown-linux-musl
PR#77 resolved #76 by correctly handling the retrieval of the latest SDK version, regardless of whether it is for the Windows 10 or 11 SDK.
PR#74 resolved #70 by creating symlinks for SDK headers that are included by the CRT and ATL headers.
PR#67 fixed an issue where incorrect packages could be selected due to using string ordering on strings that could both be version strings and regular
PR#62 added release builds for Windows, closing #58.
PR#59 added support for installing the Active Template Library (ATL). Thanks @pascalkuthe!
No changes in xwin itself, but now prebuilt binaries for apple-darwin are supplied.
apple-darwin are supplied.Updated dependencies, notably indicatif and insta.
indicatif and insta.PR#52 updated dependencies, including openssl-src to fix various issues raised by Github security advisories.
PR#50 added the ability to specify an HTTPS proxy via the https_proxy environment variable. Thanks @j-raccoon!
https_proxy environment variable. Thanks @j-raccoon!PR#48 fixed an issue introduced in PR#47 when using multiple architectures. Thanks @messense!
PR#45 replaced reqwest with ureq which significantly reduced dependencies. It also made rustls an optional (but default) TLS implementation in additio
reqwest with ureq which significantly reduced dependencies. It also made rustls an optional (but default) TLS implementation in addition to supporting native TLS for arcane platforms that are not supported by ring. Thanks @messense!PR#41 added a symlink for BaseTsd.h. Thanks @jemc!
…to --manifest-version. This is unfortunately a breaking change for the CLI.
xwin -V, however this exposed a problem that clap couldn't handle the old --version <MANIFEST_VERSION> flag since it clashed with -V, --version, so the flag has been renamed to --manifest-version. This is unfortunately a breaking change for the CLI.PR#34 changed some code so that it is possible to compile and run for x86_64-pc-windows-msvc, though this target is not explicitly support. Thanks @me
PR#32 fixed the --disable-symlinks flag to _actually_ not emit symlinks, which is needed if the target filesystem is case-insensitive.
--disable-symlinks flag to actually not emit symlinks, which is needed if the target filesystem is case-insensitive.PR#30 updated the indicatif pre-release as a workaround for cargo install's broken behavior. Thanks @messense!
cargo install's broken behavior. Thanks @messense!PR#27 added a fixup for Iphlpapi.lib => iphlpapi.lib. Thanks @jelmansouri!
Iphlpapi.lib => iphlpapi.lib. Thanks @jelmansouri!PR#22 added a fix for zeromq using a mixed case include. Thanks @Jasper-Bekkers!
thread_local to fix a security advisory.PR#19 resolved #18 by removing a source of non-determinism in the output. It also made it so that some Store headers are no longer splatted to disk wh
PR#17 resolved #6 by adding the --manifest option so that users can specify an exact manifest to use rather than downloading the mutable one from the
PR#15 resolved #14 by removing the unnecessary use of tokio::main. Thanks @mite-user!
tokio::main. Thanks @mite-user!PR#11 added a workaround symlink for Kernel32.lib to fix the prevalent time crate in older versions. Thanks @twistedfall!
Kernel32.lib to fix the prevalent time crate in older versions. Thanks @twistedfall!PR#9 resolved #8 by adding support for additional symlinks for each .lib in SCREAMING case, since some crates link them that way.
.lib in SCREAMING case, since some crates link them that way.Initial implementation if downloading, unpacking, and splatting of the CRT and Windows SDK. This first pass focused on targeting x86_64 Desktop, so ta
<!-- next-url --> [Unreleased]: https://github.com/Jake-Shadle/xwin/compare/0.10.0...HEAD [0.10.0]: https://github.com/Jake-Shadle/xwin/compare/0.9.0...0.10.0 [0.9.0]: https://github.com/Jake-Shadle/xwin/compare/0.8.0...0.9.0 [0.8.0]: https://github.com/Jake-Shadle/xwin/compare/0.7.0...0.8.0 [0.7.0]: https://github.com/Jake-Shadle/xwin/compare/0.6.7...0.7.0 [0.6.7]: https://github.com/Jake-Shadle/xwin/compare/0.6.6...0.6.7 [0.6.6]: https://github.com/Jake-Shadle/xwin/compare/0.6.5...0.6.6 [0.6.5]: https://github.com/Jake-Shadle/xwin/compare/0.6.4...0.6.5 [0.6.4]: https://github.com/Jake-Shadle/xwin/compare/0.6.3...0.6.4 [0.6.3]: https://github.com/Jake-Shadle/xwin/compare/0.6.2...0.6.3 [0.6.2]: https://github.com/Jake-Shadle/xwin/compare/0.6.1...0.6.2 [0.6.1]: https://github.com/Jake-Shadle/xwin/compare/0.6.0...0.6.1 [0.6.0]: https://github.com/Jake-Shadle/xwin/compare/0.5.2...0.6.0 [0.5.2]: https://github.com/Jake-Shadle/xwin/compare/0.5.1...0.5.2 [0.5.1]: https://github.com/Jake-Shadle/xwin/compare/0.5.0...0.5.1 [0.5.0]: https://github.com/Jake-Shadle/xwin/compare/0.4.1...0.5.0 [0.4.1]: https://github.com/Jake-Shadle/xwin/compare/0.4.0...0.4.1 [0.4.0]: https://github.com/Jake-Shadle/xwin/compare/0.3.1...0.4.0 [0.3.1]: https://github.com/Jake-Shadle/xwin/compare/0.3.0...0.3.1 [0.3.0]: https://github.com/Jake-Shadle/xwin/compare/0.2.15...0.3.0 [0.2.15]: https://github.com/Jake-Shadle/xwin/compare/0.2.14...0.2.15 [0.2.14]: https://github.com/Jake-Shadle/xwin/compare/0.2.13...0.2.14 [0.2.13]: https://github.com/Jake-Shadle/xwin/compare/0.2.12...0.2.13 [0.2.12]: https://github.com/Jake-Shadle/xwin/compare/0.2.11...0.2.12 [0.2.11]: https://github.com/Jake-Shadle/xwin/compare/0.2.10...0.2.11 [0.2.10]: https://github.com/Jake-Shadle/xwin/compare/0.2.9...0.2.10 [0.2.9]: https://github.com/Jake-Shadle/xwin/compare/0.2.8...0.2.9 [0.2.8]: https://github.com/Jake-Shadle/xwin/compare/0.2.7...0.2.8 [0.2.7]: https://github.com/Jake-Shadle/xwin/compare/0.2.6...0.2.7 [0.2.6]: https://github.com/Jake-Shadle/xwin/compare/0.2.5...0.2.6 [0.2.5]: https://github.com/Jake-Shadle/xwin/compare/0.2.4...0.2.5 [0.2.4]: https://github.com/Jake-Shadle/xwin/compare/0.2.3...0.2.4 [0.2.3]: https://github.com/Jake-Shadle/xwin/compare/0.2.2...0.2.3 [0.2.2]: https://github.com/Jake-Shadle/xwin/compare/0.2.1...0.2.2 [0.2.1]: https://github.com/Jake-Shadle/xwin/compare/0.2.0...0.2.1 [0.2.0]: https://github.com/Jake-Shadle/xwin/compare/0.1.10...0.2.0 [0.1.10]: https://github.com/Jake-Shadle/xwin/compare/0.1.9...0.1.10 [0.1.9]: https://github.com/Jake-Shadle/xwin/compare/0.1.8...0.1.9 [0.1.8]: https://github.com/Jake-Shadle/xwin/compare/0.1.7...0.1.8 [0.1.7]: https://github.com/Jake-Shadle/xwin/compare/0.1.6...0.1.7 [0.1.6]: https://github.com/Jake-Shadle/xwin/compare/0.1.5...0.1.6 [0.1.5]: https://github.com/Jake-Shadle/xwin/compare/0.1.4...0.1.5 [0.1.4]: https://github.com/Jake-Shadle/xwin/compare/xwin-0.1.3...0.1.4 [0.1.3]: https://github.com/Jake-Shadle/xwin/compare/xwin-0.1.2...xwin-0.1.3 [0.1.2]: https://github.com/Jake-Shadle/xwin/compare/xwin-0.1.1...xwin-0.1.2 [0.1.1]: https://github.com/Jake-Shadle/xwin/compare/0.1.0...xwin-0.1.1 [0.1.0]: https://github.com/Jake-Shadle/xwin/releases/tag/0.1.0
Your coding agent can read these notes before it upgrades. Set up the MCP server →