Email me

Rust versions · 1.0 to 1.99 · 2,142 stabilizations indexed

Rust versions: when was it stabilized, and which Rust do I need?

Search any API or language feature to see the Rust version that made it stable. Add a few and we work out the minimum Rust version (MSRV) your code needs.

    1.99newest release (Oct 1, 2026)
    100minor releases since 1.0
    6 weeksbetween releases
    2024newest edition (Rust 1.85)

    Every release, newest first

    • 1.99Oct 1, 2026Stabilize C-variadic function definitions; [Stabilize the ability to use #[unsafe(naked)] functions to define C-v
    • 1.98Aug 20, 2026str::substr_range, [T]::subslice_range, core::fmt::NumBuffer
    • 1.97Jul 9, 2026Stabilize the div32, lam-bh, lamcas, ld-seq-sa and scq target features; Stabilize cfg(target_has_atomic_primitive_alignment)
    • 1.96May 28, 2026assert_matches!, debug_assert_matches!, From<T> for AssertUnwindSafe<T>
    • 1.95Apr 16, 2026Stabilize if let guards on match arms; Stabilize inline assembly for PowerPC and PowerPC64
    • 1.94Mar 5, 2026Stabilize additional 29 RISC-V target features including large portion
    • 1.93Jan 22, 2026Stabilize several s390x vector-related target features and the is_s390; Stabilize declaration of C-style variadic functions for the system ABI
    • 1.92Dec 11, 2025NonZero<u{N}>::div_ceil, Location::file_as_c_str, RwLockWriteGuard::downgrade
    • 1.91Oct 30, 2025Stabilize declaration of C-style variadic functions for sysv64, win64,; Stabilize LoongArch32 inline assembly
    • 1.90Sep 18, 2025u{n}::checked_sub_signed, u{n}::overflowing_sub_signed, u{n}::saturating_sub_signed
    • 1.89Aug 7, 2025Stabilize explicitly inferred const arguments (feature(generic_arg_inf; Stabilize the avx512 target features
    • 1.88Jun 26, 2025[Stabilize #![feature(let_chains)] in the 2024 edition.](https://githu; [Stabilize #![feature(naked_functions)].](https://github.com/rust-lang
    • 1.87May 15, 2025Stabilize asm_goto feature; Stabilize feature(precise_capturing_in_traits) allowing use<...> bound
    • 1.86Apr 3, 2025Stabilize upcasting trait objects to supertraits.
    • 1.85Feb 20, 2025Rust 2024 edition. Stabilize async closures; [Stabilize #[diagnostic::do_not_recommend]](https://github.com/rust-la
    • 1.84Jan 9, 2025Stabilize s390x inline assembly; Stabilize Arm64EC inline assembly
    • 1.83Nov 28, 2024Stabilize &mut, *mut, &Cell, and *const Cell in const.; Stabilize expr_2021 macro fragment specifier in all editions.
    • 1.82Oct 17, 2024Stabilize + use<'lt> opaque type precise capturing (RFC 3617); Stabilize &raw const and &raw mut operators (RFC 2582)
    • 1.81Sep 5, 2024[Stabilize #[expect] for lints (RFC 2383),](https://github.com/rust-la
    • 1.80Jul 25, 2024Stabilize exclusive_range_pattern feature
    • 1.79Jun 13, 2024Stabilize inline const {} expressions.; Stabilize WebAssembly target features that are in phase 4 and 5.
    • 1.78May 2, 2024[Stabilize #[cfg(target_abi = ...)]](https://github.com/rust-lang/rust; [Stabilize the #[diagnostic] namespace and #[diagnostic::on_unimplemen
    • 1.77Mar 21, 2024Stabilize C-string literals.; Stabilize THIR unsafeck.
    • 1.76Feb 8, 2024Arc::unwrap_or_clone, Rc::unwrap_or_clone, Result::inspect
    • 1.75Dec 28, 2023Stabilize async fn and return-position impl Trait in traits.; Stabilize ratified RISC-V target features.
    • 1.74Nov 16, 2023Stabilize impl_trait_projections
    • 1.73Oct 5, 2023{integer}::div_ceil, {integer}::next_multiple_of, {integer}::checked_next_multiple_of
    • 1.72Aug 24, 2023Stabilize inline asm for LoongArch64
    • 1.71Jul 13, 2023Stabilize raw-dylib, link_ordinal, import_name_type and -Cdlltool.
    • 1.70Jun 1, 2023NonZero*::MIN/MAX, BinaryHeap::retain, Default for std::collections::binary_heap::IntoIter
    • 1.69Apr 20, 2023Stabilize the cmpxchg16b target feature on x86 and x86_64.
    • 1.68Mar 9, 2023Stabilize default_alloc_error_handler; Stabilize efiapi calling convention.
    • 1.67Jan 26, 2023{integer}::checked_ilog, {integer}::checked_ilog2, {integer}::checked_ilog10
    • 1.66Dec 15, 2022Stabilize sym operands in inline assembly
    • 1.65Nov 3, 2022Stabilize let else; Stabilize generic associated types (GATs)
    • 1.64Sep 22, 2022future::IntoFuture, future::poll_fn, task::ready!
    • 1.63Aug 11, 2022array::from_fn, Box::into_pin, BinaryHeap::try_reserve
    • 1.62Jun 30, 2022[Stabilize #[derive(Default)] on enums with a #[default] variant][9445
    • 1.61May 19, 2022Pin::static_mut, Pin::static_ref, Vec::retain_mut
    • 1.60Apr 7, 2022[Stabilize #[cfg(panic = "...")] for either "unwind" or "abort".][9365; [Stabilize #[cfg(target_has_atomic = "...")] for each integer size and
    • 1.59Feb 24, 2022[Stabilize default arguments for const parameters and remove the order; [Stabilize destructuring assignment][90521]
    • 1.58Jan 13, 2022Metadata::is_symlink, Path::is_symlink, {integer}::saturating_div
    • 1.57Dec 2, 2021[T; N]::as_mut_slice, [T; N]::as_slice, collections::TryReserveError
    • 1.56Oct 21, 2021Rust 2021 edition. std::os::unix::fs::chroot, UnsafeCell::raw_get, BufWriter::into_parts
    • 1.55Sep 9, 2021Bound::cloned, Drain::as_str, IntoInnerError::into_error
    • 1.54Jul 29, 2021BTreeMap::into_keys, BTreeMap::into_values, HashMap::into_keys
    • 1.53Jun 17, 2021AtomicBool::fetch_update, AtomicPtr::fetch_update, BTreeMap::retain
    • 1.52May 6, 2021Arguments::as_str, char::MAX, char::REPLACEMENT_CHARACTER
    • 1.51Mar 25, 2021Arc::decrement_strong_count, Arc::increment_strong_count, Once::call_once_force
    • 1.50Feb 11, 2021bool::then, btree_map::Entry::or_insert_with_key, f32::clamp
    • 1.49Dec 31, 2020slice::select_nth_unstable, slice::select_nth_unstable_by, slice::select_nth_unstable_by_key
    • 1.48Nov 19, 2020slice::as_ptr_range, slice::as_mut_ptr_range, VecDeque::make_contiguous
    • 1.47Oct 8, 2020Ident::new_raw, Range::is_empty, RangeInclusive::is_empty
    • 1.46Aug 27, 2020Option::zip, vec::Drain::as_slice
    • 1.45Jul 16, 2020Arc::as_ptr, BTreeMap::remove_entry, Rc::as_ptr
    • 1.44Jun 4, 2020PathBuf::with_capacity, PathBuf::capacity, PathBuf::clear
    • 1.43Apr 23, 2020Once::is_completed, f32::LOG10_2, f32::LOG2_10
    • 1.42Mar 12, 2020CondVar::wait_while, CondVar::wait_timeout_while, DebugMap::key
    • 1.41Jan 30, 2020Result::map_or, Result::map_or_else, std::rc::Weak::weak_count
    • 1.40Dec 19, 2019BTreeMap::get_key_value, HashMap::get_key_value, Option::as_deref_mut
    • 1.39Nov 7, 2019Pin::into_inner, Instant::checked_duration_since, Instant::saturating_duration_since
    • 1.38Sep 26, 2019<*const T>::cast, <*mut T>::cast, Duration::as_secs_f32
    • 1.37Aug 15, 2019BufReader::buffer, BufWriter::buffer, Cell::from_mut
    • 1.36Jul 4, 2019VecDeque::rotate_left, VecDeque::rotate_right, Iterator::copied
    • 1.35May 23, 2019f32::copysign, f64::copysign, RefCell::replace_with
    • 1.34Apr 11, 2019Any::type_id, Error::type_id, atomic::AtomicI16
    • 1.33Feb 28, 2019unix::FileExt::read_exact_at, unix::FileExt::write_all_at, Option::transpose
    • 1.32Jan 17, 2019i8::to_be_bytes, i8::to_le_bytes, i8::to_ne_bytes
    • 1.31Dec 6, 2018Rust 2018 edition. slice::align_to, slice::align_to_mut, slice::chunks_exact
    • 1.30Oct 25, 2018Ipv4Addr::BROADCAST, Ipv4Addr::LOCALHOST, Ipv4Addr::UNSPECIFIED
    • 1.29Sep 13, 2018Arc::downcast, Iterator::flatten, Rc::downcast
    • 1.28Aug 2, 2018Iterator::step_by, Path::ancestors, SystemTime::UNIX_EPOCH
    • 1.27Jun 21, 2018DoubleEndedIterator::rfind, DoubleEndedIterator::rfold, DoubleEndedIterator::try_rfold
    • 1.26May 10, 2018*const T::add, *const T::copy_to_nonoverlapping, *const T::copy_to
    • 1.25Mar 29, 2018Location::column, ptr::NonNull, Duration::new
    • 1.24Feb 15, 2018RefCell::replace, RefCell::swap, atomic::spin_loop_hint
    • 1.23Jan 4, 2018Fixes and improvements
    • 1.22Nov 22, 2017Fixes and improvements
    • 1.21Oct 12, 2017Fixes and improvements
    • 1.20Aug 31, 2017CStr::into_c_string, CString::as_c_str, CString::into_boxed_c_str
    • 1.19Jul 20, 2017OsString::shrink_to_fit, cmp::Reverse, Command::envs
    • 1.18Jun 8, 2017[Stabilize pub(restricted)][40556] pub can now accept a module path to; [Stabilize #![windows_subsystem] attribute][40870] conservative exposu
    • 1.17Apr 27, 2017Arc::into_raw, Arc::from_raw, Arc::ptr_eq
    • 1.16Mar 16, 2017VecDeque::truncate, VecDeque::resize, String::insert_str
    • 1.15Feb 2, 2017std::iter::Iterator::min_by, std::iter::Iterator::max_by, std::os::*::fs::FileExt
    • 1.14Dec 22, 2016Fixes and improvements
    • 1.13Nov 10, 2016[Stabilize the ? operator][36995]. ? is a simple way to propagate; [Stabilize macros in type position][36014]. Described in [RFC 873].
    • 1.12Sep 29, 2016Cell::as_ptr, RefCell::as_ptr, IpAddr::is_unspecified
    • 1.11Aug 18, 2016BinaryHeap::append, BTreeMap::append, BTreeMap::split_off
    • 1.10Jul 7, 2016os::windows::fs::OpenOptionsExt::access_mode, os::windows::fs::OpenOptionsExt::share_mode, os::windows::fs::OpenOptionsExt::custom_flags
    • 1.9May 26, 2016std::panic, std::panic::catch_unwind, std::panic::resume_unwind
    • 1.8Apr 14, 2016Fixes and improvements
    • 1.7Mar 3, 2016Fixes and improvements
    • 1.6Jan 21, 2016Fixes and improvements
    • 1.5Dec 10, 2015Fixes and improvements
    • 1.4Oct 29, 2015Fixes and improvements
    • 1.3Sep 17, 2015Fixes and improvements
    • 1.2Aug 7, 2015Fixes and improvements
    • 1.1Jun 25, 2015Fixes and improvements
    • 1.0May 15, 2015Fixes and improvements

    Editions

    Editions change syntax and defaults without breaking old code: each crate picks one in Cargo.toml (edition = "2024") and crates on different editions work together. 2018 arrived with Rust 1.31, 2021 with 1.56, and 2024 with 1.85. Move with cargo fix --edition.

    How we built this

    We parse the Rust project's RELEASES.md: every "Stabilized APIs" list and every language and Cargo item that says it stabilizes something becomes a search entry pointing at its release. Release dates are the official ones.

    Up next

    Newest releaseRust 1.99: what is newRead 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