ePrivacy and GPDR Cookie Consent by Cookie Consent
Rust software

Rust - releases history

Top Download Club  |  Development  |  Compilers & Interpreters  |  Rust
Version Change log
Rust 1.94.0 Mar 6, 2026 Language:
Impls and impl items inherit dead_code lint level of the corresponding traits and trait items
Stabilize additional 29 RISC-V target features including large portions of the RVA22U64 / RVA23U64 profiles
Add warn-by-default unused_visibilities lint for visibility on const _ declarations
Update to Unicode 17
Avoid incorrect lifetime errors for closures
Platform Support:
Add riscv64im-unknown-none-elf as a tier 3 target
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries:
Relax T: Ord bound for some BinaryHeap<T> methods.
Stabilized APIs:
<[T]>::array_windows
<[T]>::element_offset
LazyCell::get
LazyCell::get_mut
LazyCell::force_mut
LazyLock::get
LazyLock::get_mut
LazyLock::force_mut
impl TryFrom<char> for usize
std::iter::Peekable::next_if_map
std::iter::Peekable::next_if_map_mut
x86 avx512fp16 intrinsics (excluding those that depend directly on the unstable f16 type)
AArch64 NEON fp16 intrinsics (excluding those that depend directly on the unstable f16 type)
f32::consts::EULER_GAMMA
f64::consts::EULER_GAMMA
f32::consts::GOLDEN_RATIO
f64::consts::GOLDEN_RATIO
These previously stable APIs are now stable in const contexts:
f32::mul_add
f64::mul_add
Cargo:
Stabilize the config include key. The top-level include config key allows loading additional config files, enabling better organization, sharing, and management of Cargo configurations across projects and environments. docs #16284
Stabilize the pubtime field in registry index. This records when a crate version was published and enables time-based dependency resolution in the future. Note that crates.io will gradually backfill existing packages when a new version is published. Not all crates have pubtime yet. #16369 #16372
Cargo now parses TOML v1.1 for manifests and configuration files. Note that using these features in Cargo.toml will raise your development MSRV, but the published manifest remains compatible with older parsers. #16415
Rust 1.93.1 Feb 13, 2026 Don't try to recover keyword as non-keyword identifier, fixing an ICE that especially affected rustfmt.
Fix clippy::panicking_unwrap false-positive on field access with implicit deref.
Revert "Update wasm-related dependencies in CI", fixing file descriptor leaks on the wasm32-wasip2 target.
Rust 1.93.0 Jan 22, 2026 Language:
Stabilize several s390x vector-related target features and the is_s390x_feature_detected! macro
Stabilize declaration of C-style variadic functions for the system ABI
Emit error when using some keyword as a cfg predicate
Stabilize asm_cfg
During const-evaluation, support copying pointers byte-by-byte
LUB coercions now correctly handle function item types, and functions with differing safeties
Allow const items that contain mutable references to static (which is very unsafe, but not always UB)
Add warn-by-default const_item_interior_mutations lint to warn against calls which mutate interior mutable const items
Add warn-by-default function_casts_as_integer lint
Compiler:
Stabilize -Cjump-tables=bool. The flag was previously called -Zno-jump-tables.
Platform Support:
Promote riscv64a23-unknown-linux-gnu to Tier 2 (without host tools)
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries:
Stop internally using specialization on the Copy trait as it is unsound in the presence of lifetime dependent Copy implementations. This may result in some performance regressions as some standard library APIs may now call Clone::clone instead of performing bitwise copies
Allow the global allocator to use thread-local storage and std::thread::current()
Make BTree::append not update existing keys when appending an entry which already exists
Don't require T: RefUnwindSafe for vec::IntoIter<T>: UnwindSafe
Stabilized APIs:
<[MaybeUninit<T>]>::assume_init_drop
<[MaybeUninit<T>]>::assume_init_ref
<[MaybeUninit<T>]>::assume_init_mut
<[MaybeUninit<T>]>::write_copy_of_slice
<[MaybeUninit<T>]>::write_clone_of_slice
String::into_raw_parts
Vec::into_raw_parts
<iN>::unchecked_neg
<iN>::unchecked_shl
<iN>::unchecked_shr
<uN>::unchecked_shl
<uN>::unchecked_shr
<[T]>::as_array
<[T]>::as_array_mut
<*const [T]>::as_array
<*mut [T
Rust 1.92.0 Dec 15, 2025 Enable file locking support in illumos. This fixes Cargo not locking the build directory on illumos.
Fix wasm_import_module attribute cross-crate. This fixes linker errors on WASM targets.
Rust 1.91.1 Nov 10, 2025 Enable file locking support in illumos. This fixes Cargo not locking the build directory on illumos.
Fix wasm_import_module attribute cross-crate. This fixes linker errors on WASM targets.
Rust 1.91.0 Oct 30, 2025 Language:
Lower pattern bindings in the order they're written and base drop order on primary bindings' order
Stabilize declaration of C-style variadic functions for sysv64, win64, efiapi, and aapcs ABIs. This brings these ABIs in line with the C ABI: variadic functions can be declared in extern blocks but not defined.
Add dangling_pointers_from_locals lint to warn against dangling pointers from local variables
Upgrade semicolon_in_expressions_from_macros from warn to deny
Stabilize LoongArch32 inline assembly
Add warn-by-default integer_to_ptr_transmutes lint against integer-to-pointer transmutes
Stabilize sse4a and tbm target features
Add target_env = "macabi" and target_env = "sim" cfgs as replacements for the target_abi cfgs with the same values.
Compiler:
Don't warn on never-to-any as casts as unreachable
Platform Support:
Promote aarch64-pc-windows-gnullvm and x86_64-pc-windows-gnullvm to Tier 2 with host tools. Note: llvm-tools and MSI installers are missing but will be added in future releases.
Promote aarch64-pc-windows-msvc to Tier 1
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries:
Print thread ID in panic message
Fix overly restrictive lifetime in core::panic::Location::file return type
Guarantee parameter order for _by() variants of min / max/ minmax in std::cmp
Document assumptions about Clone and Eq traits
std::thread: Return error if setting thread stack size fails This used to panic within the standard library.
Stabilized APIs:
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_un
Rust 1.90.0 Oct 9, 2025 Language:
Stabilize explicitly inferred const arguments (feature(generic_arg_infer))
Add a warn-by-default mismatched_lifetime_syntaxes lint. This lint detects when the same lifetime is referred to by different syntax categories between function arguments and return values, which can be confusing to read, especially in unsafe code. This lint supersedes the warn-by-default elided_named_lifetimes lint.
Expand unpredictable_function_pointer_comparisons to also lint on function pointer comparisons in external macros
Make the dangerous_implicit_autorefs lint deny-by-default
Stabilize the avx512 target features
Stabilize kl and widekl target features for x86
Stabilize sha512, sm3 and sm4 target features for x86
Stabilize LoongArch target features f, d, frecipe, lasx, lbt, lsx, and lvz
Remove i128 and u128 from improper_ctypes_definitions
Stabilize repr128 (#[repr(u128)], #[repr(i128)])
Allow #![doc(test(attr(..)))] everywhere
Extend temporary lifetime extension to also go through tuple struct and tuple variant constructors
extern "C" functions on the wasm32-unknown-unknown target now have a standards compliant ABI
Compiler:
Default to non-leaf frame pointers on aarch64-linux
Enable non-leaf frame pointers for Arm64EC Windows
Set Apple frame pointers by architecture
Platform Support:
Add new Tier-3 targets loongarch32-unknown-none and loongarch32-unknown-none-softfloat
x86_64-apple-darwin is in the process of being demoted to Tier 2 with host tools
Libraries:
Specify the base path for file!
Allow storing format_args!() in a variable
Add #[must_use] to [T; N]::map
Implement DerefMut for Lazy{Cell,Lock}
Implement Default for array::IntoIter
Implement Clone for slice::ChunkBy
Implement io::Seek for io::Take
Stabilized APIs:
NonZero<char>
Many intrinsics for x86, not enumerated here
AVX512 intrinsics
SHA512, SM3 and SM4 intrinsics
File::lock
File::lock_shared
File::try_lock
File::try_lock_shared
File::unlock
NonNull::from_ref
NonNull::from_mut
NonNull::without_
Rust 1.88.0 Jun 27, 2025 Language:
Stabilize #![feature(let_chains)] in the 2024 edition. This feature allows &&-chaining let statements inside if and while, allowing intermixture with boolean expressions. The patterns inside the let sub-expressions can be irrefutable or refutable.
Stabilize #![feature(naked_functions)]. Naked functions allow writing functions with no compiler-generated epilogue and prologue, allowing full control over the generated assembly for a particular function.
Stabilize #![feature(cfg_boolean_literals)]. This allows using boolean literals as cfg predicates, e.g. #[cfg(true)] and #[cfg(false)].
Fully de-stabilize the #[bench] attribute. Usage of #[bench] without #![feature(custom_test_frameworks)] already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error.
Add warn-by-default dangerous_implicit_autorefs lint against implicit autoref of raw pointer dereference. The lint will be bumped to deny-by-default in the next version of Rust.
Add invalid_null_arguments lint to prevent invalid usage of null pointers. This lint is uplifted from clippy::invalid_null_ptr_usage.
Change trait impl candidate preference for builtin impls and trivial where-clauses.
Check types of generic const parameter defaults
Compiler:
Stabilize -Cdwarf-version for selecting the version of DWARF debug information to generate.
Platform Support:
Demote i686-pc-windows-gnu to Tier 2.
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries:
Remove backticks from #[should_panic] test failure message.
Guarantee that [T; N]::from_fn is generated in order of increasing indices., for those passing it a stateful closure.
The libtest flag --nocapture is deprecated in favor of the more consistent --no-capture flag.
Guarantee that {float}::NAN is a quiet NaN.
Stabilized APIs:
Cell::update
impl Default for *const T
impl Default for *mut T
HashMap::extract_if
HashSet::extract_if
proc_macro::Span::line
proc_macro::S
Rust 1.87.0 May 15, 2025 Language:
Stabilize asm_goto feature
Allow parsing open beginning ranges (..EXPR) after unary operators !, -, and *.
Don't require method impls for methods with Self: Sized bounds in impls for unsized types
Stabilize feature(precise_capturing_in_traits) allowing use<...> bounds on return position impl Trait in traits
Compiler:
x86: make SSE2 required for i686 targets and use it to pass SIMD types
Platform Support:
Remove i586-pc-windows-msvc target
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries:
Stabilize the anonymous pipe API
Add support for unbounded left/right shift operations
Print pointer metadata in Debug impl of raw pointers
Vec::with_capacity guarantees it allocates with the amount requested, even if Vec::capacity returns a different number.
Most std::arch intrinsics which don't take pointer arguments can now be called from safe code if the caller has the appropriate target features already enabled (rust-lang/stdarch#1714, rust-lang/stdarch#1716, rust-lang/stdarch#1717)
Undeprecate env::home_dir
Denote ControlFlow as #[must_use]
Macros such as assert_eq! and vec! now support const {...} expressions
Stabilized APIs:
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>::offs
Rust 1.86.0 Apr 13, 2025 Language:
Stabilize upcasting trait objects to supertraits.
Allow safe functions to be marked with the #[target_feature] attribute.
The missing_abi lint now warns-by-default.
Rust now lints about double negations, to catch cases that might have intended to be a prefix decrement operator (--x) as written in other languages. This was previously a clippy lint, clippy::double_neg, and is now available directly in Rust as double_negations.
More pointers are now detected as definitely not-null based on their alignment in const eval.
Empty repr() attribute applied to invalid items are now correctly rejected.
Inner attributes #![test] and #![rustfmt::skip] are no longer accepted in more places than intended.
Compiler:
Debug-assert that raw pointers are non-null on access.
Change -O to mean -C opt-level=3 instead of -C opt-level=2 to match Cargo's defaults.
Fix emission of overflowing_literals under certain macro environments.
Platform Support:
Replace i686-unknown-redox target with i586-unknown-redox.
Increase baseline CPU of i686-unknown-hurd-gnu to Pentium 4.
New tier 3 targets:
{aarch64-unknown,x86_64-pc}-nto-qnx710_iosock. For supporting Neutrino QNX 7.1 with io-socket network stack.
{aarch64-unknown,x86_64-pc}-nto-qnx800. For supporting Neutrino QNX 8.0 (no_std-only).
{x86_64,i686}-win7-windows-gnu. Intended for backwards compatibility with Windows 7. {x86_64,i686}-win7-windows-msvc are the Windows MSVC counterparts that already exist as Tier 3 targets.
amdgcn-amd-amdhsa.
x86_64-pc-cygwin.
{mips,mipsel}-mti-none-elf. Initial bare-metal support.
m68k-unknown-none-elf.
armv7a-nuttx-{eabi,eabihf}, aarch64-unknown-nuttx, and thumbv7a-nuttx-{eabi,eabihf}.
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries:
The type of FromBytesWithNulError in CStr::from_bytes_with_nul(bytes: &[u8]) -> Result<&Self, FromBytesWithNulError> was changed from an opaque struct to an enum, allowing users to examine why the conversion fa
NEWSLETTER
© 2026 TopDownload.Club  |  All rights reserved.
created by FAUST