Announcing Rust 1.91.1

Programming Language Updates

The Rust team has released Rust 1.91.1, a point release that addresses critical regressions related to Wasm linker errors and Cargo target directory locking on illumos.

Announcing Rust 1.91.1

Nov. 10, 2025 · The Rust Release Team

The Rust team is pleased to announce the availability of Rust 1.91.1, a new point release designed to empower developers to build reliable and efficient software.

How to Get Rust 1.91.1

If you have a previous version of Rust installed via rustup, updating to Rust 1.91.1 is straightforward:

rustup update stable

For those who haven't yet installed rustup, you can obtain it from the appropriate page on our website.

What's New in 1.91.1?

Rust 1.91.1 primarily includes critical fixes for two regressions introduced in the previous 1.91.0 release.

Linker and Runtime Errors on Wasm

While most targets supported by Rust identify symbols by their name, Wasm distinguishes them by both a symbol name and a Wasm module name. The #[link(wasm_import_module)] attribute allows developers to customize the Wasm module name that an extern block refers to:

#[link(wasm_import_module = "hello")]
extern "C" {
    pub fn world();
}

Rust 1.91.0 introduced a regression in this attribute, which could lead to significant issues such as linker failures during compilation (manifesting as "import module mismatch" errors) or the incorrect function being used at runtime. The latter could result in undefined behavior, including application crashes and silent data corruption. This specific issue occurred when the same symbol name was imported from two different Wasm modules across multiple Rust crates.

Rust 1.91.1 successfully resolves this regression. Further details can be found in issue #148347.

Cargo Target Directory Locking Broken on Illumos

Cargo relies on locking the target/ directory during a build process to prevent concurrent invocations from interfering with each other. It acknowledges that not all filesystems, particularly some networked ones, support locking. If the operating system returns an Unsupported error when locking is attempted, Cargo normally proceeds without it.

Cargo 1.91.0 transitioned from custom code interacting with OS APIs to using the File::lock standard library method (which was recently stabilized in Rust 1.89.0). Due to an oversight, this method invariably returned Unsupported on the illumos target. Consequently, Cargo failed to lock the build directory on illumos systems, irrespective of whether the underlying filesystem actually supported locking.

Rust 1.91.1 rectifies this oversight within the standard library by enabling the File::lock family of functions on illumos, thereby indirectly resolving the Cargo regression.

Contributors to 1.91.1

This release was made possible by the collective efforts of many individuals. We extend our sincere gratitude to all contributors.

Thanks!