Popular: Data updated October 27, 2026

Categories

Internet1,356
Communication321
Audio & video898
Graphics & design539
Office & productivity1,124
Developer tools3,134
AI tools529
Security & privacy385
System tools3,114
Games523
Education & science239
Network & IT284

Rust (GNU) 1.97.0 download

A language empowering everyone to build reliable and efficient software.

This is an older version. The current version is 1.99.1. Rust (GNU) 1.99.1 · Released:
1.97.0 is part of the 1.97 line, which reached its end of life on August 20, 2026. It no longer receives security fixes. endoflife.date

Installer files 1.97.0

ArchitectureTypeScopeFile sizeDownloadSHA256
64-bit MSI — — static.rust-lang.org VirusTotal
32-bit MSI — — static.rust-lang.org VirusTotal

Link and SHA256 come from the Windows Package Manager community manifest. Compare the hash of the downloaded file before running it.

Release notes

Language
- 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

https://github.com/rust-lang/rust/releases/tag/1.97.0

Most popular in Languages & SDKs

See all
  1. Go Programming LanguageAn open source programming language that makes it simple to build secure, scalable systems.
  2. LLVMA collection of modular and reusable compiler and toolchain technologies.
  3. DenoA modern runtime for JavaScript and TypeScript
  4. CMakeCMake is a cross-platform, open-source build system generator.
  5. YarnYarn is a package manager that doubles down as project manager. Whether you work on one-shot projects or large monorepos, as a hobbyist or an enterprise user, we've got you covered.
  6. CcacheCcache is a compiler cache. It speeds up recompilation by caching previous compilations and detecting when the same compilation is being done again.
  7. sbtA build tool for Scala, Java, and more
  8. BOINCOpen-source software for volunteer computing and grid computing.
  9. Dart SDKA set of tools and libraries for the Dart programming language.
  10. NVM for WindowsA node.js version management utility for Windows. Ironically written in Go.

More from The Rust Project Developers

See all
  • rust-analyzerrust-analyzer is a language server that provides IDE functionality for writing Rust programs. You can use it with any editor that supports the Language Server Protocol (VS Code, Vim, Emacs, Zed, etc).
  • Rust (MSVC)A language empowering everyone to build reliable and efficient software.
  • Rust (GNU LLVM)A language empowering everyone to build reliable and efficient software.

Tags

Share