BuildRiot
Sign in

Article · Open source

Rust 1.100.0 ends 32-bit Windows compiler distributions but keeps i686 targets

Rust 1.100.0 will stop distributing compilers that run on 32-bit Windows while retaining the i686-pc-windows-msvc and i686-pc-windows-gnu compilation targets. Affected teams need a supported compiler host to use the new release. BuildRiot recommends reviewing build scripts, native dependencies, and application tests during migration.

An overhead miniature scene shows a retired printing press beside a larger blue press feeding green paper into two window-shaped molds.
Illustration: BuildRiot (AI-generated)

Key takeaway

Teams can keep shipping 32-bit Windows applications, but pipelines using a 32-bit Windows compiler host need to change. Separating the compiler host from the output target helps identify architecture assumptions that could break the migration.

The compiler moves, the output target stays

Rust 1.100.0 will end official compiler distributions for 32-bit Windows while preserving the i686-pc-windows-msvc and i686-pc-windows-gnu compilation targets. Rust announced the change on October 2, 2026. Teams can continue producing 32-bit Windows applications by running the compiler on a supported host. For affected pipelines, the immediate task is to move compilation to that host. Sources: Rust Blog

Other 32-bit platforms are outside the announcement’s scope. The two affected targets become standard-library-only distributions, losing host tools while keeping their existing tier numbers. The table below separates the capability being removed from the support that remains. Teams should inventory the toolchain running each release job before deciding which jobs need changes. Sources: Rust Blog, The rustc book

Table

i686 Windows support at Rust 1.100.0

TargetBefore Rust 1.100.0Announced statusWhat remains available
i686-pc-windows-msvcTier 1 with host toolsTier 1 without host toolsPrebuilt standard library; continued target CI testing
i686-pc-windows-gnuTier 2 with host toolsTier 2 without host toolsPrebuilt standard library; Tier 2 build guarantees
The two affected targets lose host tools. Each retains its tier number and prebuilt standard library.Sources: Rust Blog, The rustc book

Host support and target support have different guarantees

Rust’s platform policy defines the host as the platform running tools such as rustc and Cargo. The target is the platform for which the compiler generates code. Host-tool support is an additional capability. A supported output target need not have a compiler distributed for use on that platform. Here, standard-library-only describes the retained distribution, and the two affected targets remain available. Sources: Rust Blog, The rustc book

Tier 1 includes automated build-and-test coverage. Tier 2 provides automated builds without the same assurance that tests run or resulting programs work. Those different guarantees remain after the two affected targets lose host tools. Rust’s Request for Comments proposal 3999 says i686-pc-windows-msvc standard-library testing remains. Compiler-host testing ends, and some end-to-end coverage may be lost. Library maintainers should preserve tests relevant to their applications rather than assume an unchanged tier number means unchanged coverage. Sources: Rust Blog, The rustc book, The Rust RFC Book

An earlier demotion retained compiler distributions

On May 26, 2025, Rust announced that i686-pc-windows-gnu would move from Tier 1 to Tier 2 in Rust 1.88.0. The announcement cited insufficient maintenance expertise and troublesome continuous integration failures. It explicitly retained compiler and standard-library distributions. The October 2026 announcement removes host tools, a capability that survived the earlier demotion. Sources: Rust Blog

Proposal 3999 reports 432,000 i686-pc-windows-msvc compiler downloads against 6.75 million standard-library downloads. For i686-pc-windows-gnu, it reports 72,000 compiler downloads against 3.57 million standard-library downloads. These totals show more standard-library downloads than compiler downloads, but they do not count distinct developers. The proposal says rustup telemetry cannot establish whether i686 compiler users run 32-bit or 64-bit Windows kernels. The totals therefore cannot show how many users would need different development hardware. Sources: The Rust RFC Book

Documentation also needs to be read against the announced release boundary. The unversioned platform-support page lists i686-pc-windows-msvc among Tier 1 hosts. Its nightly documentation describes Tier 1 support without host tools. That difference appears consistent with documentation and release-channel timing. For migration planning, the October announcement gives the explicit Rust 1.100.0 boundary. Sources: Rust Blog, The rustc book

Build scripts need a host-and-target audit

Library maintainers should pay particular attention to build.rs. Cargo’s documentation says conditional compilation inside a build script describes the machine running the script, rather than the output target. On an x86_64 host, a script can choose the wrong native code if it uses its own architecture to select i686 inputs. Cargo directs scripts to the corresponding target configuration environment variables for target-specific decisions. Moving the compiler can expose an existing cross-compilation assumption. Review architecture selection before release jobs change. Sources: The Cargo Book

Cargo also separates host-side build scripts and procedural macros from target artifacts. With an explicit target selection, configured Rust flags apply to target compilation rather than those host-side components. A build can consequently contain 64-bit build-time executables alongside 32-bit deliverables. Maintainers should review architecture detection, native-library discovery, and generated configuration together. Scripts that assume every executable in a build directory has the same architecture deserve particular attention. Sources: The Cargo Book

Linking and runtime behavior need separate checks

For the Microsoft Visual C++ target, Rust documents architectural cross-compilation from a Windows host with the appropriate Visual Studio components installed. Its target documentation says cross-compilation from a non-Windows host may be possible, but is unsupported. Linux and Windows workers therefore have different support positions when producing this target. Teams should account for that distinction when choosing replacement build workers. Sources: The rustc book

The target documentation lists Windows 10 and Windows Server 2016 as operating-system baselines and specifies the i686 C calling convention. Changing the compiler host does not itself change those deployment requirements or architecture-specific foreign-function interface obligations. Audit the architecture of C and C++ libraries, confirm linking, and test the application on representative deployment systems. Cargo provides per-target linker, runner, and Rust compiler flag configuration, allowing compilation and execution arrangements to be specified separately. Treat those as separate checks when reviewing a migrated release job. Sources: The Cargo Book, The rustc book

Make the compiler host explicit in release jobs

A practical migration can use a Windows x86_64 worker with the required Visual Studio components. The intended arrangement pairs a 64-bit compiler with the retained i686 standard library to produce 32-bit output. The example below illustrates that setup; it is untested and does not establish performance or reliability gains. For a reproducible production pipeline, use a chosen pinned release in place of the moving stable channel. Sources: Rust Blog, The rustc book

rustup toolchain install stable-x86_64-pc-windows-msvc
rustup target add --toolchain stable-x86_64-pc-windows-msvc i686-pc-windows-msvc
cargo +stable-x86_64-pc-windows-msvc build --release --target i686-pc-windows-msvc

BuildRiot recommends the following migration checks:

  1. Record the compiler host and output target separately in the continuous integration matrix.
  2. Audit toolchain overrides that request an i686 compiler host.
  3. Review build scripts and native dependencies for host-dependent architecture choices.
  4. Keep the i686 output target explicit and check linking separately.
  5. Run application tests on representative deployment systems before switching release jobs. Sources: Rust Blog, The rustc book, The Cargo Book

Use the migration review to decide which runtime tests must remain release requirements. Proposal 3999 acknowledges that removing compiler-host testing may reduce end-to-end coverage, making application-specific checks especially useful. The October announcement gives no sunset date for the remaining standard-library distributions. Watch future target-policy announcements and keep deployment tests capable of catching failures that a successful cross-build cannot reveal. Sources: Rust Blog, The Rust RFC Book

Attribution

Sources

  1. 1Rust BlogDemoting i686 Windows targets to std-onlySource published (UTC)
  2. 2The rustc bookPlatform Support
  3. 3The Rust RFC Book3999-std-only-i686-msvcSource published (UTC)
  4. 4The Cargo BookBuild Scripts
  5. 5The Cargo BookConfiguration
  6. 6The rustc book*-pc-windows-msvc
  7. 7Rust BlogDemoting i686-pc-windows-gnu to Tier 2Source published (UTC)

Read the original source for full details and context.

Report a problem

Links, dates or what you expected. Do not include passwords or private data.

More on Open source

All Open source stories

Review · AI

Kokon previews local Qwen image editing with Windows and Apple Silicon installers

GabrieleLozupone’s Kokon repository describes local image editing with Qwen-Image 2.1 Turbo, automatic settings and installers for Windows and Apple Silicon Macs. Mac support is in beta. Its version 0.9.2 release claims native 2K editing on GPUs with at least 16 GB of video memory. It names stable-diffusion.cpp engine revision master-964-1d0a58a. The release also mentions an earlier version, 0.9.1.

GitHub

Security

curl fixes HTTP/2 upload use-after-free flaw in 8.23.0

The curl project released version 8.23.0 on October 14, 2026, fixing an HTTP/2 upload flaw. curl says the flaw can allow remote code execution under specific conditions. Tracked as CVE-2026-92392 and rated High by curl, it affects libcurl and the command-line tool. Certain server-sent stream reset messages during an upload can cause curl to use a freed object. Maintainer Daniel Stenberg said successful exploitation in the wild would be extremely difficult and a crash more likely. The release includes 24 security fixes, according to Stenberg’s release announcement.

Daniel Stenberg