Email me

Rust versions / 1.87

Rust release · May 15, 2025

Rust 1.87: what's new, what was stabilized

Short answerRust 1.87 was released on May 15, 2025: 2 language stabilizations (Stabilize asm_goto feature); 74 newly stable APIs (Vec::extract_if, vec::ExtractIf, LinkedList::extract_if, linked_list::ExtractIf, ...); 16 compatibility notes that can affect existing code.

May 15, 2025release date
2language stabilizations
74APIs stabilized
-new edition

← Rust 1.86All versionsRust 1.88 →

Language features stabilized

  • Stabilize asm_goto feature
  • Stabilize feature(precise_capturing_in_traits) allowing use<...> bounds on return position impl Trait in traits

74 APIs stabilized

Vec::extract_if, vec::ExtractIf, LinkedList::extract_if, linked_list::ExtractIf, <[T]>::split_off, <[T]>::split_off_mut, <[T]>::split_off_first, <[T]>::split_off_first_mut, <[T]>::split_off_last, <[T]>::split_off_last_mut, String::extend_from_within, os_str::Display, OsString::display, OsStr::display, io::pipe, io::PipeReader, io::PipeWriter, impl From<PipeReader> for OwnedHandle, impl From<PipeWriter> for OwnedHandle, impl From<PipeReader> for Stdio, impl From<PipeWriter> for Stdio, impl From<PipeReader> for OwnedFd, impl From<PipeWriter> for OwnedFd, Box<MaybeUninit<T>>::write, impl TryFrom<Vec<u8>> for String, <*const T>::offset_from_unsigned, <*const T>::byte_offset_from_unsigned, <*mut T>::offset_from_unsigned, <*mut T>::byte_offset_from_unsigned, NonNull::offset_from_unsigned, NonNull::byte_offset_from_unsigned, <uN>::cast_signed, NonZero::<uN>::cast_signed, <iN>::cast_unsigned, NonZero::<iN>::cast_unsigned, <uN>::is_multiple_of, <uN>::unbounded_shl, <uN>::unbounded_shr, <iN>::unbounded_shl, <iN>::unbounded_shr, <iN>::midpoint, <str>::from_utf8, <str>::from_utf8_mut, <str>::from_utf8_unchecked, <str>::from_utf8_unchecked_mut, core::str::from_utf8_mut, <[T]>::copy_from_slice, SocketAddr::set_ip, SocketAddr::set_port, SocketAddrV4::set_ip, SocketAddrV4::set_port, SocketAddrV6::set_ip, SocketAddrV6::set_port, SocketAddrV6::set_flowinfo, SocketAddrV6::set_scope_id, char::is_digit, char::is_whitespace, <[[T; N]]>::as_flattened, <[[T; N]]>::as_flattened_mut, String::into_bytes, String::as_str, String::capacity, String::as_bytes, String::len, String::is_empty, String::as_mut_str, String::as_mut_vec, Vec::as_ptr, Vec::as_slice, Vec::capacity, Vec::len, Vec::is_empty, Vec::as_mut_slice, Vec::as_mut_ptr

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.87          # or exactly this one
rustup override set 1.87     # pin a project to it

To require at least this version from users of your crate, set rust-version = "1.87" 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.87.0-Compiler"></a>

Compiler

<a id="1.87.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.87.0-Libraries"></a>

Libraries

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

Stabilized APIs

These previously stable APIs are now stable in const contexts:

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

Cargo

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

Compatibility Notes

<a id="1.87.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.

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

← Rust 1.86All versionsRust 1.88 →

Up next

Next releaseRust 1.88Released Jun 26, 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