Email me

Rust versions / 1.91

Rust release · Oct 30, 2025

Rust 1.91: what's new, what was stabilized

Short answerRust 1.91 was released on Oct 30, 2025: 3 language stabilizations (Stabilize declaration of C-style variadic functions for sysv64, win64, efiapi, and aapcs A...); 67 newly stable APIs (Path::file_prefix, AtomicPtr::fetch_ptr_add, AtomicPtr::fetch_ptr_sub, AtomicPtr::fetch_byte_add, ...); 18 compatibility notes that can affect existing code. Point release: 1.91.1 (Nov 10, 2025).

Oct 30, 2025release date
3language stabilizations
67APIs stabilized
-new edition

← Rust 1.90All versionsRust 1.92 →

Language features stabilized

  • Stabilize declaration of C-style variadic functions for sysv64, win64, efiapi, and aapcs ABIs.
  • Stabilize LoongArch32 inline assembly
  • Stabilize sse4a and tbm target features

67 APIs stabilized

Path::file_prefix, AtomicPtr::fetch_ptr_add, AtomicPtr::fetch_ptr_sub, AtomicPtr::fetch_byte_add, AtomicPtr::fetch_byte_sub, AtomicPtr::fetch_or, AtomicPtr::fetch_and, AtomicPtr::fetch_xor, {integer}::strict_add, {integer}::strict_sub, {integer}::strict_mul, {integer}::strict_div, {integer}::strict_div_euclid, {integer}::strict_rem, {integer}::strict_rem_euclid, {integer}::strict_neg, {integer}::strict_shl, {integer}::strict_shr, {integer}::strict_pow, i{N}::strict_add_unsigned, i{N}::strict_sub_unsigned, i{N}::strict_abs, u{N}::strict_add_signed, u{N}::strict_sub_signed, PanicHookInfo::payload_as_str, core::iter::chain, u{N}::checked_signed_diff, core::array::repeat, PathBuf::add_extension, PathBuf::with_added_extension, Duration::from_mins, Duration::from_hours, impl PartialEq<str> for PathBuf, impl PartialEq<String> for PathBuf, impl PartialEq<str> for Path, impl PartialEq<String> for Path, impl PartialEq<PathBuf> for String, impl PartialEq<Path> for String, impl PartialEq<PathBuf> for str, impl PartialEq<Path> for str, Ipv4Addr::from_octets, Ipv6Addr::from_octets, Ipv6Addr::from_segments, impl<T> Default for Pin<Box<T>> where Box<T>: Default, T: ?Sized, impl<T> Default for Pin<Rc<T>> where Rc<T>: Default, T: ?Sized, impl<T> Default for Pin<Arc<T>> where Arc<T>: Default, T: ?Sized, Cell::as_array_of_cells, u{N}::carrying_add, u{N}::borrowing_sub, u{N}::carrying_mul, u{N}::carrying_mul_add, BTreeMap::extract_if, BTreeSet::extract_if, impl Debug for windows::ffi::EncodeWide<'_>, str::ceil_char_boundary, str::floor_char_boundary, impl Sum for Saturating<u{N}>, impl Sum<&Self> for Saturating<u{N}>, impl Product for Saturating<u{N}>, impl Product<&Self> for Saturating<u{N}>, <[T; N]>::each_ref, <[T; N]>::each_mut, OsString::new, PathBuf::new, TypeId::of, ptr::with_exposed_provenance, ptr::with_exposed_provenance_mut

Can it break my build?

The release lists these compatibility notes. Most only affect rare code, but read them before you raise your toolchain in CI:

Use it

rustup update stable        # get the newest release
rustup install 1.91          # or exactly this one
rustup override set 1.91     # pin a project to it

To require at least this version from users of your crate, set rust-version = "1.91" under [package] in Cargo.toml. Cargo then refuses to build it on older compilers with a clear message, and with resolver 3 (the default on the 2024 edition, Rust 1.85+) it also prefers dependency versions that support it.

Full release notes

Language

<a id="1.91.0-Compiler"></a>

Compiler

<a id="1.91.0-Platform-Support"></a>

Platform Support

Refer to Rust's platform support page for more information on Rust's tiered platform support.

<a id="1.91.0-Libraries"></a>

Libraries

<a id="1.91.0-Stabilized-APIs"></a>

Stabilized APIs

These previously stable APIs are now stable in const contexts:

<a id="1.91.0-Cargo"></a>

Cargo

  • 🎉 Stabilize build.build-dir. This config sets the directory where intermediate build artifacts are stored. These artifacts are produced by Cargo and rustc during the build process. End users usually won't need to interact with them, and the layout inside build-dir is an implementation detail that may change without notice. (config doc) (build cache doc) #15833 #15840
  • The --target flag and the build.target configuration can now take literal "host-tuple" string, which will internally be substituted by the host machine's target triple. #15838 #16003 #16032

<a id="1.91.0-Rustdoc"></a>

Rustdoc

<a id="1.91.0-Compatibility-Notes"></a>

Compatibility Notes

Cargo compatibility notes:

  • cargo publish no longer keeps .crate tarballs as final build artifacts when build.build-dir is set. These tarballs were previously included due to an oversight and are now treated as intermediate artifacts. To get .crate tarballs as final artifacts, use cargo package. In a future version, this change will apply regardless of build.build-dir. #15910
  • Adjust Cargo messages to match rustc diagnostic style. This changes some of the terminal colors used by Cargo messages. #15928
  • Tools and projects relying on the internal details of Cargo's build-dir may not work for users changing their build-dir layout. For those doing so, we'd recommend proactively testing these cases particularly as we are considering changing the default location of the build-dir in the future (cargo#16147). If you can't migrate off of Cargo's internal details, we'd like to learn more about your use case as we prepare to change the layout of the build-dir (cargo#15010).

<a id="1.91.0-Internal-Changes"></a>

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.

1.91.1 (Nov 10, 2025)

<a id="1.91.1"></a>

Release notes from the Rust project's RELEASES.md (MIT or Apache-2.0); summaries above are ours.

← Rust 1.90All versionsRust 1.92 →

Up next

Next releaseRust 1.92Released Dec 11, 2025.Read it next →

Did this answer your question?

Get the receipts by email.

What my AI agents tried this week, with the real numbers: what worked, what flopped, what made money. One email when there is something worth reading.

No spam, never sold. Every email has a one-click unsubscribe.

Popular in the shop

All 124 tools →

Browse: Bundles and kitsHome, family and schoolMoney and businessAI toolsSports and fitnessMaking and hobbiesFood and drinkIndie dev and launchTrading and quant

Free: Landing page teardown iPhone app cost calculator LLM API cost calculator Paid online: $49 Launch Check App builds Articles FAQ