Seznam obsahuje 12 verzí programu Rust (GNU LLVM) – od 12. února 2026 po aktuální verzi 1.99.1. Každá verze vede na instalátory ze serveru výrobce.
| Verze | Datum | Velikost | Soubory |
|---|---|---|---|
| 1.99.1Nejnovější | 15. října 2026 | — | 64bit MSIARM64 MSI |
| 1.99.0 | 1. října 2026 | — | 64bit MSIARM64 MSI Seznam změnLanguage
- Add allow-by-default raw_borrows_via_references lint that checks for references that decay immediately into raw borrows
- Extend unconditional_panic lint to function calls that panic when the chunks/windows size is zero
- Stabilize C-variadic function definitions
- Stabilize the ability to use #[unsafe(naked)] functions to define C-variadic functions (#![feature(c_variadic_naked_functions)]).
- Trait methods are now resolved on an adjusted never type (producing a FCW)
- Coerce from inference variables to trait objects if the inference variable is related via subtyping to a type that is known to be Sized
- Stabilize #[my_macro] mod foo;. This allows outlined modules (mod foo;) anywhere in the body of a custom attribute or derive macro.
- Fix the overflowing_literals lint with repeated negation. For instance, it will now no longer lint on --128_i8, which is already detected by the arithmetic_overflow lint.
- Add POSIX symbols to the invalid_runtime_symbol_definitions and suspicious_runtime_symbol_definitions lints
- Lint unused #[path] attributes on inline modules
- Enable unreachable_cfg_select_predicates lint as part of unused lint group
- Stabilize passing 128-bit integers via vector registers with asm! on x86
- Explicitly document that some allocations are allowed to grow in-place (but none are allowed to shrink)
- We now guarantee that the contents of an UnsafeCell can be accessed without going through get
- The invalid_reference_casting lint was adjusted accordingly
- Account for globally enabled target features in global_asm!
- Warn if an invalid doc attribute is used on a macro invocation
Compiler
- Convert -Ctarget-cpu into a target-modifier for AVR, AMDGCN and NVPTX
- Enable static_position_independent_executables on all gnu targets
- When providing a suggestion about a missing method, rustc now prefers an exactly matching name from a doc alias attribute over a similarity search from other method names. If your new users sometimes expect a method under a different name, adding a doc alias will now help them find it via rustc suggestions, in addition to helping them find it via rustdoc search: When suggesting method names, prefer exact doc aliases over similar names
Platform Support
- Promote riscv64-unknown-linux-musl to Tier 2 with host tools
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries
- Iteration on RangeInclusive (a..=b ranges) is now optimized better in some circumstances. As a side effect of this, the behavior of RangeInclusive values that has already been exhausted (as an iterator) has changed. For example, the return values of start() and end() on such ranges may return different values, and using such ranges as slice indexes may have different behavior. These behaviors were not guaranteed to be stable, so these changes are considered to not be breaking changes.
- Relax transmute_copy to accept ?Sized types
- Update transmute_copy to use a non-unwinding panic
- Don't escape U+FF9E and U+FF9F in escape_debug_ext
- Re-export core::fmt::NumBuffer in alloc (and std)
Stabilized APIs
- IntoIterator for Box<[T; N]>
- IntoIterator for &Box<[T; N]>
- IntoIterator for &mut Box<[T; N]>
- VecDeque::retain_back
- core::ffi::VaList
- Box::into_non_null
- Box::from_non_null
- Vec::into_parts
- Vec::from_parts
- core::mem::size_of_val_raw
- core::mem::align_of_val_raw
- core::alloc::Layout::for_value_raw
- String::from_utf8_lossy_owned
- string::FromUtf8Error::into_utf8_lossy
- FusedIterator for StepBy<I>
- std::fs::set_times
- std::fs::set_times_nofollow
Cargo
- Add a new built-in profile debug. This is a preparation for transitioning the dev profile away from debugging to give a saner default for faster development iterations. Currently there is no difference between dev and debug profiles. docs #17214
- Workspace members on edition 2024 or later can now override an inherited workspace dependency's default-features field. For example, serde = { worksp |
| 1.98.1 | 3. září 2026 | — | 64bit MSIARM64 MSI Seznam změn- rustc: fix miscompilation in generating vtables |
| 1.98.0 | 20. srpna 2026 | — | 64bit MSIARM64 MSI Seznam změnLanguage
- Allow shortening lifetime of &mut when unsize-coercing, even in an invariant position. For example, you can now coerce a Cell<&'long mut i32> to a Cell<&'short mut dyn Send>. Such shortenings were already previously allowed when coercing a &mut to a &, or coercing a & to a &.
- Add deny-by-default invalid_runtime_symbol_definitions lint and warn-by-default suspicious_runtime_symbol_definitions lint
- The lints currently specifically targets core runtime symbols like memcmp, memset, strlen, ... and is planned to be expanded in the next few releases.
- Add warn-by-default c_void_returns lint to check core::ffi::c_void as a return type
Platform Support
- Add powerpc64-unknown-linux-gnuelfv2 as Tier 3
- Add aarch64-unknown-linux-pauthtest as Tier 3 target
- Promote thumbv7a-none-eabi to Tier 2
- Promote thumbv7a-none-eabihf to Tier 2
- Promote thumbv7r-none-eabi to Tier 2
- Promote thumbv7r-none-eabihf to Tier 2
- Promote thumbv8r-none-eabihf to Tier 2
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries
- Change Location<'_> lifetime to 'static in Panic[Hook]Info
- Document panic in RangeInclusive::from(legacy::RangeInclusive)
- Document that ManuallyDrop's Box interaction has been fixed
- Stabilize LoongArch CRC Intrinsics
- The derive macro is available at {core,std}::derive. This was previously unintentionally stabilized in 1.96, but is now explicitly accepted as a stabilized API.
- Please note that the MSRV for {core,std}::derive will be 1.96, and not 1.98.
Stabilized APIs
- str::substr_range
- [T]::subslice_range
- core::fmt::NumBuffer
- <{integer}>::format_into
- Send/Sync for std::process::CommandArgs
- {fN}::algebraic_add
- {fN}::algebraic_sub
- {fN}::algebraic_mul
- {fN}::algebraic_div
- {fN}::algebraic_rem
- NonZero<{integer}>::from_str_radix
- String::from_utf16le
- String::from_utf16le_lossy
- String::from_utf16be
- String::from_utf16be_lossy
- [T]::strip_circumfix
- str::strip_circumfix
- Atomic<T>::from_mut
- Atomic<T>::get_mut_slice
- Atomic<T>::from_mut_slice
- std::range::legacy
Compatibility Notes
- If fully elided, lifetime bounds of trait object types may now resolve differently or even get rejected in very specific niche scenarios
- Error in more cases of ambiguous imports
- Switch the destructors implementation for thread locals on Windows to use Fiber Local Storage (FLS)
- Convert some cases of the ambiguous_glob_imports lint into a hard error
- Where-bounds of the form Type = Type and Type == Type are no longer syntactically allowed
- Ensure Send/Sync is not implemented for std::env::Vars{,Os}
- Fix that in some attributes, arguments were not properly rejected
- repr(transparent) is now more strict about which fields have "trivial" layout and hence can be ignored: repr(C) types, types with private fields, and #[non_exhaustive] types are no longer considered "trivial"
- Correctly check whether types have equal size in transmute() when some repr attributes are involved.
- More characters are escaped when printing strings and chars
- Implement fast path for derive(PartialOrd) when deriving Ord This can break crates in practice where a type's PartialOrd and Ord impls were inconsistent with each other.
- Add temporary scope to assert_eq and assert_ne
- Closed a hole in the pattern matching structural equality check, preventing cases where a match of a constant would be allowed, despite disagreeing with a manually written PartialEq implementation, when a derive(PartialEq) implementation for that type also exists.
- On Emscripten the WASM exception handling ABI is now unconditionally used The -Zemscripten-wasm-eh=false flag to switch back to JS exceptions has been removed.
- The UNSAFE_CODE lint is now consistently emitted for all unsafe attributes
- Solaris: remove File::lock implementation, it has the wrong semantics (return "unsupported" instead)
- Windows-gnu targets now specify baseline tools versions
- rustfmt now discovers module files that are |
| 1.97.1 | 16. července 2026 | — | 64bit MSIARM64 MSI Seznam změn- rustc: Fix miscompilation in LLVM optimization This backports an LLVM submodule bump to include the LLVM-side fix and a revert of the rustc change that is one known trigger for the bug. The rustc side revert should not be strictly necessary but is done out of abundance of caution. |
| 1.97.0 | 9. července 2026 | — | 64bit MSIARM64 MSI Seznam změnLanguage
- Consider Result<T, Uninhabited> and ControlFlow<Uninhabited, T> to be equivalent to T for must use lint
- Add allow-by-default dead_code_pub_in_binary lint for unused pub items in binary crates
- Stabilize the div32, lam-bh, lamcas, ld-seq-sa and scq target features
- Stabilize cfg(target_has_atomic_primitive_alignment)
- Allow trailing self in imports in more cases
Platform Support
- nvptx64-nvidia-cuda: drop support for old architectures and old ISAs
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Stabilized APIs
- Default for RepeatN
- Copy for ffi::FromBytesUntilNulError
- Send for std::fs::File on UEFI
- <{integer}>::isolate_highest_one
- <{integer}>::isolate_lowest_one
- <{integer}>::highest_one
- <{integer}>::lowest_one
- <{integer}>::bit_width
- NonZero<{integer}>::isolate_highest_one
- NonZero<{integer}>::isolate_lowest_one
- NonZero<{integer}>::highest_one
- NonZero<{integer}>::lowest_one
- NonZero<{integer}>::bit_width
These previously stable APIs are now stable in const contexts:
- char::is_control
Cargo
- Stabilize build.warnings config. This controls how lint warnings from local packages are treated. Useful for enforcing a warning-free build in CI, replacing -Dwarnings. docs
- Stabilize resolver.lockfile-path config. This allows specifying the path to the lockfile to use when resolving dependencies. Useful when working with read-only source directories. docs
- cargo-clean: Error when --target-dir doesn't look like a Cargo target directory. This prevents accidental deletion of non-target directories.
- Add -m shorthand for --manifest-path
- Remove curl dependency from crates-io crate
Rustdoc
- Stabilize --emit flag
- Stabilize --remap-path-prefix
Compatibility Notes
- Emit a future-compatibility warning when relying on f32: From<{float}> to constrain {float}
- Rust will use the v0 symbol mangling scheme by default. This may cause some tools (such as debuggers or profilers, especially with old versions) to fail to demangle symbols emitted by Rust. It may also cause the formatting of text in backtraces to change.
- Prevent deref coercions in pin!, in order to prevent unsoundness. The most likely case where this might impact users is: writing pin!(x) where x has type &mut T will now always correctly produce a value of type Pin<&mut &mut T>, instead of sometimes allowing a coercion that produces a value of type Pin<&mut T>. This coercion was previously incorrectly allowed since Rust 1.88.0.
- Deprecate std::char constants and functions
- Warn on linker output by default
- Remove hidden f64 methods which have been deprecated since 1.0
- report the varargs_without_pattern lint in deps
- Forbid passing generic arguments to module path segments even if the module reexports a generic enum variant
- Error on invalid macho link_section specifier
- The encoding of certain enums have changed. This is not a breaking change, as it only applies to enums without layout guarantees, but is noted here as we've seen people impacted from having made assumptions about the layout algorithm.
- Error on #[export_name = "..."] where the name is empty
- Syntactically reject tuple index shorthands in struct patterns
- validate #[link_name = "..."] & #[link(name = "...")] parameters
- On Windows, after calling shutdown on a socket to shut down the write side, attempting to write to the socket will now produce a BrokenPipe error rather than Other. Map WSAESHUTDOWN to io::ErrorKind::BrokenPipe |
| 1.96.1 | 30. června 2026 | — | 64bit MSIARM64 MSI |
| 1.96.0 | 28. května 2026 | — | 64bit MSIARM64 MSI Seznam změnLanguage
- Allow passing expr metavariable to cfg
- Always coerce never types in tuple expressions
- Avoid incorrect inference guidance of function arguments in rare cases
- Support s390x vector registers in inline assembly
- Allow using constants of type ManuallyDrop as patterns (fixing a regression introduced in 1.94.0)
Compiler
- Enable link relaxation feature for LoongArch Linux targets
- Update riscv64gc-unknown-fuchsia baseline to RVA22 + vector
Libraries
- Support iterating over ranges of NonZero integers
- refactor 'valid for read/write' definition: exclude null; add that as an exception on individual methods instead
- Fix SGX delayed host lookup via ToSocketAddr
Stabilized APIs
- assert_matches!
- debug_assert_matches!
- From<T> for AssertUnwindSafe<T>
- From<T> for LazyCell<T, F>
- From<T> for LazyLock<T, F>
- core::range::RangeToInclusive
- core::range::RangeToInclusiveIter
- core::range::RangeFrom
- core::range::RangeFromIter
- core::range::Range
- core::range::RangeIter
Cargo
- Allow a dependency to specify both a git repository and an alternate registry. Just like with crates.io, the git repository will be used locally, but the registry version will be used when published.
- Added target.'cfg(..)'.rustdocflags support in configuration.
- Fixed CVE-2026-5222 and CVE-2026-5223.
Rustdoc
- Deprecation notes are now rendered like any other documentation. Previously they used the css white-space: pre-wrap; property and stripped any <p> elements from the rendered html, however this caused issues and unintuitive behavior. The new behavior should be more predictable, however some multi-line deprecation notes will now be rendered as as single lines. If this is undesirable, you can use the standard markdown method of forcing a linebreak, which is two spaces followed by a newline ("
").
- Don't emit rustdoc missing_doc_code_examples lint on impl items
- Seperate methods and associated functions in sidebar
Compatibility Notes
- Fix layout of #[repr(Int)] enums in some edge cases involving fields of uninhabited zero-sized types
- Prevent unsize-coercing into Pin<Foo> where Foo doesn't implement Deref. Some such coercions were previously allowed, but produce a type with no useful public API.
- rustc: Stop passing --allow-undefined on wasm targets
- Gate the accidentally stabilized #![reexport_test_harness_main] attribute
- Error on return-position-impl-trait-in-traits whose types are too private
- Report the uninhabited_static lint in dependencies and make it deny-by-default
- Distributed builds now contain non-split debuginfo for windows-gnu This appears to improve the quality of backtraces. This change has no effect on the defaults for the output of rustc/cargo on these targets.
- Check const generic arguments are correctly typed in more positions
- Remove -Csoft-float
- Importing structs with ::{self [as name]}, e.g., struct S {}; use S::{self as Other};, is now no longer permitted because {self} imports require a module parent.
- For export_name, link_name, and link_section attributes, if multiple of the same attribute is present, the first one now takes precedence.
- Update the minimum external LLVM to 21
- On avr targets, C's double type is 32-bit by default, so change c_double to f32 on avr targets to match. This is a breaking change, but necessary to make c_double match C's double.
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.
- JSON targets: aarch64 softfloat targets now have to have rustc_abi set to "softfloat"
- target specs: stricter checks for LLVM ABI values, and correlate that with cfg(target_abi) |
| 1.95.0 | 16. dubna 2026 | — | 64bit MSIARM64 MSI Seznam změnLanguage
- Stabilize if let guards on match arms
- irrefutable_let_patterns lint no longer lints on let chains
- Support importing path-segment keywords with renaming
- Stabilize inline assembly for PowerPC and PowerPC64
- const-eval: be more consistent in the behavior of padding during typed copies
- Const blocks are no longer evaluated to determine if expressions involving fallible operations can implicitly be constant-promoted.. Expressions whose ability to implicitly be promoted would depend on the result of a const block are no longer implicitly promoted.
- Make operational semantics of pattern matching independent of crate and module
Compiler
- Stabilize --remap-path-scope for controlling the scoping of how paths get remapped in the resulting binary
Platform Support
- Promote powerpc64-unknown-linux-musl to Tier 2 with host tools
- Promote aarch64-apple-tvos to Tier 2
- Promote aarch64-apple-tvos-sim to Tier 2
- Promote aarch64-apple-watchos to Tier 2
- Promote aarch64-apple-watchos-sim to Tier 2
- Promote aarch64-apple-visionos to Tier 2
- Promote aarch64-apple-visionos-sim to Tier 2
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries
- thread::scope: document how join interacts with TLS destructors
- Speed up str::contains on aarch64 targets with neon target feature enabled by default
Stabilized APIs
- MaybeUninit<[T; N]>: From<[MaybeUninit<T>; N]>
- MaybeUninit<[T; N]>: AsRef<[MaybeUninit<T>; N]>
- MaybeUninit<[T; N]>: AsRef<[MaybeUninit<T>]>
- MaybeUninit<[T; N]>: AsMut<[MaybeUninit<T>; N]>
- MaybeUninit<[T; N]>: AsMut<[MaybeUninit<T>]>
- [MaybeUninit<T>; N]: From<MaybeUninit<[T; N]>>
- Cell<[T; N]>: AsRef<[Cell<T>; N]>
- Cell<[T; N]>: AsRef<[Cell<T>]>
- Cell<[T]>: AsRef<[Cell<T>]>
- bool: TryFrom<{integer}>
- AtomicPtr::update
- AtomicPtr::try_update
- AtomicBool::update
- AtomicBool::try_update
- AtomicIn::update
- AtomicIn::try_update
- AtomicUn::update
- AtomicUn::try_update
- cfg_select!
- mod core::range
- core::range::RangeInclusive
- core::range::RangeInclusiveIter
- core::hint::cold_path
- <*const T>::as_ref_unchecked
- <*mut T>::as_ref_unchecked
- <*mut T>::as_mut_unchecked
These previously stable APIs are now stable in const contexts:
- fmt::from_fn
- ControlFlow::is_break
- ControlFlow::is_continue
Cargo
- docs(report): enhance man pages for cargo report *
Rustdoc
- In search results, rank unstable items lower
- Add new "hide deprecated items" setting in rustdoc
Compatibility Notes
- Array coercions may now result in less inference constraints than before
- Importing $crate without renaming, i.e. use $crate::{self};, is now no longer permitted due to stricter error checking for self imports.
- const-eval: be more consistent in the behavior of padding during typed copies. In very rare cases, this may cause compilation errors due to bytes from parts of a pointer ending up in the padding bytes of a const or static.
- A future-incompatibility warning lint ambiguous_glob_imported_traits is now reported when using an ambiguously glob imported trait
- Check lifetime bounds of types mentioning only type parameters
- Report more visibility-related ambiguous import errors
- Deprecate Eq::assert_receiver_is_total_eq and emit future compatibility warnings on manual impls
- powerpc64: Use the ELF ABI version set in target spec instead of guessing (fixes the ELF ABI used by the OpenBSD target)
- Matching on a #[non_exhaustive] enum now reads the discriminant, even if the enum has only one variant. This can cause closures to capture values that they previously wouldn't.
- mut ref and mut ref mut patterns, part of the unstable Match Ergonomics 2024 RFC, were accidentally allowed on stable within struct pattern field shorthand. These patterns are now correctly feature-gated as unstable in this position.
- Add future-compatibility warning for derive helper attributes which conflict with built-in attributes
- JSON target specs have been destabilized and now require |
| 1.94.1 | 26. března 2026 | — | 64bit MSIARM64 MSI Seznam změn- Fix std::thread::spawn on wasm32-wasip1-threads
- Remove new methods added to std::os::windows::fs::OpenOptionsExt The new methods were unstable, but the trait itself is not sealed and so cannot be extended with non-default methods.
- Clippy: fix ICE in match_same_arms
- Cargo: update tar to 0.4.45 This resolves CVE-2026-33055 and CVE-2026-33056. Users of crates.io are not affected. See blog for more details. |
| 1.94.0 | 5. března 2026 | — | 64bit MSIARM64 MSI Seznam změnLanguage
- 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
- Make CARGO_BIN_EXE_<crate> available at runtime
Compatibility Notes
- Forbid freely casting lifetime bounds of dyn-types
- Make closure capturing have consistent and correct behaviour around patterns Some finer details of how precise closure captures get affected by pattern matching have been changed. In some cases, this can cause a non-move closure that was previously capturing an entire variable by move, to now capture only part of that variable by move, and other parts by borrow. This can cause the borrow checker to complain where it previously didn't, or cause Drop to run at a different point in time.
- Standard library macros are now imported via prelude, not via injected #[macro_use] This will raise an error if macros of the same name are glob imported. For example if a crate defines their own matches macro and then glob imports that, it's now ambiguous whether the custom or standard library matches is meant and an explicit import of the name is required to resolve the ambiguity. One exception is core::panic and std::panic, if their import is ambiguous a new warning (ambiguous_panic_imports) is raised. This may raise a new warning (ambiguous_panic_imports) on #![no_std] code glob importing the std crate. Both core::panic! and std::panic! are then in scope and which is used is ambiguous.
- Don't strip shebang in expression-context include!(…)s This can cause previously working includes to no longer compile if they included files which started with a shebang.
- Ambiguous glob reexports are now also visible cross-crate This unifies behavior between local and cross-crate errors on these exports, which may introduce new ambiguity errors.
- Don't normalize where-clauses before checking well-formedness
- Introduce a future compatibility warning on codegen attributes on body-free trait methods These attributes currently have no effect in this position.
- On Windows std::time::SystemTime::checked_sub_duration will return None for times be |
| 1.93.1 | 12. února 2026 | — | 64bit MSIARM64 MSI |