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.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
Rust 1.85.1 Mar 18, 2025 Language:
Stabilize &mut, *mut, &Cell, and *const Cell in const.
Allow creating references to statics in const initializers.
Implement raw lifetimes and labels ('r#ident).
Define behavior when atomic and non-atomic reads race.
Non-exhaustive structs may now be empty.
Disallow implicit coercions from places of type !
const extern functions can now be defined for other calling conventions.
Stabilize expr_2021 macro fragment specifier in all editions.
The non_local_definitions lint now fires on less code and warns by default.
Compiler:
Deprecate unsound -Csoft-float flag.
Add many new tier 3 targets:
aarch64_unknown_nto_qnx700
arm64e-apple-tvos
armv7-rtems-eabihf
loongarch64-unknown-linux-ohos
riscv32-wrs-vxworks and riscv64-wrs-vxworks
riscv32{e|em|emc}-unknown-none-elf
x86_64-unknown-hurd-gnu
x86_64-unknown-trusty
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries:
Implement PartialEq for ExitCode.
Document that catch_unwind can deal with foreign exceptions without UB, although the exact behavior is unspecified.
Implement Default for HashMap/HashSet iterators that don't already have it.
Bump Unicode to version 16.0.0.
Change documentation of ptr::add/sub to not claim equivalence with offset..
Stabilized APIs:
BufRead::skip_until
ControlFlow::break_value
ControlFlow::continue_value
ControlFlow::map_break
ControlFlow::map_continue
DebugList::finish_non_exhaustive
DebugMap::finish_non_exhaustive
DebugSet::finish_non_exhaustive
DebugTuple::finish_non_exhaustive
ErrorKind::ArgumentListTooLong
ErrorKind::Deadlock
ErrorKind::DirectoryNotEmpty
ErrorKind::ExecutableFileBusy
ErrorKind::FileTooLarge
ErrorKind::HostUnreachable
ErrorKind::IsADirectory
ErrorKind::NetworkDown
ErrorKind::NetworkUnreachable
ErrorKind::NotADirectory
ErrorKind::NotSeekable
ErrorKind::ReadOnlyFilesystem
ErrorKind::ResourceBusy
ErrorKind::StaleNetworkFileHandle
ErrorKind::StorageFull
ErrorKind::TooManyLinks
Option::get_or_insert_default
Waker::data
Wak
Rust 1.85.0 Feb 20, 2025 Language:
Stabilize &mut, *mut, &Cell, and *const Cell in const.
Allow creating references to statics in const initializers.
Implement raw lifetimes and labels ('r#ident).
Define behavior when atomic and non-atomic reads race.
Non-exhaustive structs may now be empty.
Disallow implicit coercions from places of type !
const extern functions can now be defined for other calling conventions.
Stabilize expr_2021 macro fragment specifier in all editions.
The non_local_definitions lint now fires on less code and warns by default.
Compiler:
Deprecate unsound -Csoft-float flag.
Add many new tier 3 targets:
aarch64_unknown_nto_qnx700
arm64e-apple-tvos
armv7-rtems-eabihf
loongarch64-unknown-linux-ohos
riscv32-wrs-vxworks and riscv64-wrs-vxworks
riscv32{e|em|emc}-unknown-none-elf
x86_64-unknown-hurd-gnu
x86_64-unknown-trusty
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries:
Implement PartialEq for ExitCode.
Document that catch_unwind can deal with foreign exceptions without UB, although the exact behavior is unspecified.
Implement Default for HashMap/HashSet iterators that don't already have it.
Bump Unicode to version 16.0.0.
Change documentation of ptr::add/sub to not claim equivalence with offset..
Stabilized APIs:
BufRead::skip_until
ControlFlow::break_value
ControlFlow::continue_value
ControlFlow::map_break
ControlFlow::map_continue
DebugList::finish_non_exhaustive
DebugMap::finish_non_exhaustive
DebugSet::finish_non_exhaustive
DebugTuple::finish_non_exhaustive
ErrorKind::ArgumentListTooLong
ErrorKind::Deadlock
ErrorKind::DirectoryNotEmpty
ErrorKind::ExecutableFileBusy
ErrorKind::FileTooLarge
ErrorKind::HostUnreachable
ErrorKind::IsADirectory
ErrorKind::NetworkDown
ErrorKind::NetworkUnreachable
ErrorKind::NotADirectory
ErrorKind::NotSeekable
ErrorKind::ReadOnlyFilesystem
ErrorKind::ResourceBusy
ErrorKind::StaleNetworkFileHandle
ErrorKind::StorageFull
ErrorKind::TooManyLinks
Option::get_or_insert_default
Waker::data
Wak
Rust 1.84.1 Jan 30, 2025 Language:
Stabilize &mut, *mut, &Cell, and *const Cell in const.
Allow creating references to statics in const initializers.
Implement raw lifetimes and labels ('r#ident).
Define behavior when atomic and non-atomic reads race.
Non-exhaustive structs may now be empty.
Disallow implicit coercions from places of type !
const extern functions can now be defined for other calling conventions.
Stabilize expr_2021 macro fragment specifier in all editions.
The non_local_definitions lint now fires on less code and warns by default.
Compiler:
Deprecate unsound -Csoft-float flag.
Add many new tier 3 targets:
aarch64_unknown_nto_qnx700
arm64e-apple-tvos
armv7-rtems-eabihf
loongarch64-unknown-linux-ohos
riscv32-wrs-vxworks and riscv64-wrs-vxworks
riscv32{e|em|emc}-unknown-none-elf
x86_64-unknown-hurd-gnu
x86_64-unknown-trusty
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries:
Implement PartialEq for ExitCode.
Document that catch_unwind can deal with foreign exceptions without UB, although the exact behavior is unspecified.
Implement Default for HashMap/HashSet iterators that don't already have it.
Bump Unicode to version 16.0.0.
Change documentation of ptr::add/sub to not claim equivalence with offset..
Stabilized APIs:
BufRead::skip_until
ControlFlow::break_value
ControlFlow::continue_value
ControlFlow::map_break
ControlFlow::map_continue
DebugList::finish_non_exhaustive
DebugMap::finish_non_exhaustive
DebugSet::finish_non_exhaustive
DebugTuple::finish_non_exhaustive
ErrorKind::ArgumentListTooLong
ErrorKind::Deadlock
ErrorKind::DirectoryNotEmpty
ErrorKind::ExecutableFileBusy
ErrorKind::FileTooLarge
ErrorKind::HostUnreachable
ErrorKind::IsADirectory
ErrorKind::NetworkDown
ErrorKind::NetworkUnreachable
ErrorKind::NotADirectory
ErrorKind::NotSeekable
ErrorKind::ReadOnlyFilesystem
ErrorKind::ResourceBusy
ErrorKind::StaleNetworkFileHandle
ErrorKind::StorageFull
ErrorKind::TooManyLinks
Option::get_or_insert_default
Waker::data
Wak
Rust 1.83.0 Nov 28, 2024 Language:
Stabilize &mut, *mut, &Cell, and *const Cell in const.
Allow creating references to statics in const initializers.
Implement raw lifetimes and labels ('r#ident).
Define behavior when atomic and non-atomic reads race.
Non-exhaustive structs may now be empty.
Disallow implicit coercions from places of type !
const extern functions can now be defined for other calling conventions.
Stabilize expr_2021 macro fragment specifier in all editions.
The non_local_definitions lint now fires on less code and warns by default.
Compiler:
Deprecate unsound -Csoft-float flag.
Add many new tier 3 targets:
aarch64_unknown_nto_qnx700
arm64e-apple-tvos
armv7-rtems-eabihf
loongarch64-unknown-linux-ohos
riscv32-wrs-vxworks and riscv64-wrs-vxworks
riscv32{e|em|emc}-unknown-none-elf
x86_64-unknown-hurd-gnu
x86_64-unknown-trusty
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries:
Implement PartialEq for ExitCode.
Document that catch_unwind can deal with foreign exceptions without UB, although the exact behavior is unspecified.
Implement Default for HashMap/HashSet iterators that don't already have it.
Bump Unicode to version 16.0.0.
Change documentation of ptr::add/sub to not claim equivalence with offset..
Stabilized APIs:
BufRead::skip_until
ControlFlow::break_value
ControlFlow::continue_value
ControlFlow::map_break
ControlFlow::map_continue
DebugList::finish_non_exhaustive
DebugMap::finish_non_exhaustive
DebugSet::finish_non_exhaustive
DebugTuple::finish_non_exhaustive
ErrorKind::ArgumentListTooLong
ErrorKind::Deadlock
ErrorKind::DirectoryNotEmpty
ErrorKind::ExecutableFileBusy
ErrorKind::FileTooLarge
ErrorKind::HostUnreachable
ErrorKind::IsADirectory
ErrorKind::NetworkDown
ErrorKind::NetworkUnreachable
ErrorKind::NotADirectory
ErrorKind::NotSeekable
ErrorKind::ReadOnlyFilesystem
ErrorKind::ResourceBusy
ErrorKind::StaleNetworkFileHandle
ErrorKind::StorageFull
ErrorKind::TooManyLinks
Option::get_or_insert_default
Waker::data
Wak
Rust 1.82.0 Oct 17, 2024 Language:
Don't make statement nonterminals match pattern nonterminals
Patterns matching empty types can now be omitted in common cases
Enforce supertrait outlives obligations when using trait impls
addr_of(_mut)! macros and the newly stabilized &raw (const|mut) are now safe to use with all static items
size_of_val_raw: for length 0 this is safe to call
Reorder trait bound modifiers after for<...> binder in trait bounds
Stabilize opaque type precise capturing (RFC 3617)
Stabilize &raw const and &raw mut operators (RFC 2582)
Stabilize unsafe extern blocks (RFC 3484)
Stabilize nested field access in offset_of!
Do not require T to be live when dropping [T; 0]
Stabilize const operands in inline assembly
Stabilize floating-point arithmetic in const fn
Stabilize explicit opt-in to unsafe attributes
Document NaN bit patterns guarantees
Compiler:
Promote riscv64gc-unknown-linux-musl to tier 2
Promote Mac Catalyst targets aarch64-apple-ios-macabi and x86_64-apple-ios-macabi to Tier 2, and ship them with rustup
Add tier 3 NuttX based targets for RISC-V and ARM
Add tier 3 powerpc-unknown-linux-muslspe target
Improved diagnostics to explain why a pattern is unreachable
The compiler now triggers the unreachable code warning properly for async functions that don't return/are -> !
Promote aarch64-apple-darwin to Tier 1
Add Trusty OS target aarch64-unknown-trusty and armv7-unknown-trusty as tier 3 targets
Promote wasm32-wasip2 to Tier 2.
Libraries:
Generalize {Rc,Arc}::make_mut() to Path, OsStr, and CStr.
Stabilized APIs:
std::thread::Builder::spawn_unchecked
std::str::CharIndices::offset
std::option::Option::is_none_or
[T]::is_sorted
[T]::is_sorted_by
[T]::is_sorted_by_key
Iterator::is_sorted
Iterator::is_sorted_by
Iterator::is_sorted_by_key
std::future::Ready::into_inner
std::iter::repeat_n
impl<T: Clone> DoubleEndedIterator for Take<Repeat<T>>
impl<T: Clone> ExactSizeIterator for Take<Repeat<T>>
impl<T: Clone> ExactSizeIterator
Rust 1.81.0 Sep 5, 2024 Fix miscompilation in the jump threading MIR optimization when comparing floats
Revert changes to the dead_code lint from 1.80.0
Rust 1.80.1 Aug 8, 2024 Language:
Document maximum allocation size
Allow zero-byte offsets and ZST read/writes on arbitrary pointers
Support C23's variadics without a named parameter
Stabilize exclusive_range_pattern feature
Guarantee layout and ABI of Result in some scenarios
Compiler:
Update cc crate to v1.0.97 allowing additional spectre mitigations on MSVC targets
Allow field reordering on types marked repr(packed(1))
Add a lint against never type fallback affecting unsafe code
Disallow cast with trailing braced macro in let-else
Expand for_loops_over_fallibles lint to lint on fallibles behind references.
self-contained linker: retry linking without -fuse-ld=lld on CCs that don't support it
Do not parse CVarArgs (...) as a type in trait bounds
Improvements to LLDB formatting #124458 #124500
For the wasm32-wasip2 target default to PIC and do not use -fuse-ld=lld
Add x86_64-unknown-linux-none as a tier 3 target
Lint on foo.into_iter() resolving to &Box<[T]>: IntoIterator
Libraries:
Add size_of and size_of_val and align_of and align_of_val to the prelude
Abort a process when FD ownership is violated
io::Write::write_fmt: panic if the formatter fails when the stream does not fail
Panic if PathBuf::set_extension would add a path separator
Add assert_unsafe_precondition to unchecked_{add,sub,neg,mul,shl,shr} methods
Update c_char on AIX to use the correct type
offset_of! no longer returns a temporary
Handle sigma in str.to_lowercase correctly
Raise DEFAULT_MIN_STACK_SIZE to at least 64KiB
Stabilized APIs:
impl Default for Rc<CStr>
impl Default for Rc<str>
impl Default for Rc<[T]>
impl Default for Arc<str>
impl Default for Arc<CStr>
impl Default for Arc<[T]>
impl IntoIterator for Box<[T]>
impl FromIterator<String> for Box<str>
impl FromIterator<char> for Box<str>
LazyCell
LazyLock
Duration::div_duration_f32
Duration::div_duration_f64
Option::take_if
Seek::seek_relative
BinaryHeap::as_slice
NonNull::offset
NonNull::byte_of
NEWSLETTER
© 2025 TopDownload.Club  |  All rights reserved.
created by FAUST