Skip to main content

Rust 1.98.0

Release Date: August 20, 2026

Rust 1.98.0 — released August 20, 2026. This release introduces lifetime-shortening improvements for &mut coercions, stabilizes core::fmt::NumBuffer and a broad set of integer and floating-point helper APIs, adds several new platform targets, and ships a list of compatibility notes that developers should review before upgrading.

Language

The headline language change allows shortening the lifetime of &mut when unsize-coercing, even in an invariant position. You can now coerce a Cell<&'long mut i32> to a Cell<&'short mut dyn Send> — something previously only permitted when coercing to a plain reference. In addition, the RISC-V d, e, and f target features are now stable for use in cfg(target_feature = "...").

Platform Support

  • powerpc64-unknown-linux-gnuelfv2 added as a Tier 3 target
  • aarch64-unknown-linux-pauthtest added as a Tier 3 target
  • thumbv7a-none-eabi, thumbv7a-none-eabihf, thumbv7r-none-eabi, thumbv7r-none-eabihf, and thumbv8r-none-eabihf promoted to Tier 2

Libraries

Location<'_> now uses a 'static lifetime in Panic[Hook]Info, and core::range::{legacy, RangeFull, RangeTo} have been stabilized along with documentation clarifications for RangeInclusive and ManuallyDrop.

Stabilized APIs

  • core::fmt::NumBuffer and integer format_into
  • Send/Sync for std::process::CommandArgs
  • Floating-point algebraic_add, algebraic_sub, algebraic_mul, algebraic_div, and algebraic_rem
  • NonZero<{integer}>::from_str_radix
  • String::from_utf16le, from_utf16le_lossy, from_utf16be, and from_utf16be_lossy
  • [T]::strip_circumfix and str::strip_circumfix
  • Atomic<T>::from_mut, get_mut_slice, and from_mut_slice

Compatibility Notes

Several lints harden in this release. Some cases of the ambiguous_glob_imports lint become hard errors, a new deny-by-default invalid_runtime_symbol_definitions lint targets core runtime symbols, and repr(transparent) is stricter about which fields count as "trivial". Thread-local destructors on Windows now use FLS, and where-bounds of the form Type = Type are no longer syntactically allowed. Upgrade carefully and consult the official migration notes for the complete list.

What is New?

By continuing to use the site, you agree to the use of cookies.