Rust 1.100.0 Stable Release: Version Number Enters Triple Digits for the First Time, Bringing Multiple Language and Standard Library Updates, Never Type Finally Stabilized After 10 Years
IT之家 November 13 news: The Rust team officially released the latest Rust 1.100.0 stable version on November 12 local time, marking the first time the Rust version number has entered the triple-digit stage.
This update brings the stabilization of multiple language and standard library features, while also improving Cargo dependency management, build caching, and software supply chain security mechanisms.

According to the official Rust introduction, one of the most anticipated changes in Rust 1.100 is the official stabilization of the never type. After approximately 10 years and 5 stabilization attempts, this feature has finally entered the stable version.
The never type is denoted by ! and represents a computation that never produces a return value. For example, expressions that terminate control flow such as return, break, and std::process::exit all have this type. This update allows developers to explicitly use ! in any position, including type definitions such as Result<T, !>.
At the same time, Rust 1.100 also adjusts Infallible to be an alias for the never type !, enabling APIs that previously used Infallible to be compatible with the new type. IT之家 notes that this adjustment also brings a compatibility change: in Rust 2015, 2018, and 2021 editions, the default fallback behavior of the never type changes from () to !, which may affect a small amount of code.
Regarding memory allocation, the new version stabilizes the core part of the Allocator API, allowing developers to define custom memory allocators through the newly stabilized Allocator trait and use them with some standard library types, currently including Vec and Box. The Rust team stated that this is also an important progress toward the Allocators 1.0 project goal, and there are plans to extend custom allocators to more collection types and pointer types in the future.
The standard library also adds core::mem::DropGuard, used to execute a specified closure when a variable goes out of scope. Developers can use it to handle different exit paths such as normal function return, error propagation, and panic, thereby simplifying resource cleanup and transaction rollback logic.
In addition, Rust 1.100 adds std::mem::conjure_zst, providing developers with a dedicated interface for creating zero-sized types (ZST) when safety conditions are met, reducing the need to create such values through transmute and similar methods. Since improperly creating zero-sized types may violate the safety preconditions of some APIs, this interface is designed as an unsafe operation.
The Cargo package management tool has also received multiple improvements. First, Cargo now by default prompts developers about unused dependencies in the project, helping to reduce unnecessary compilation work. For example, when a dependency declared in Cargo.toml is not used by the relevant build targets, the system will issue an unused dependency warning.
Second, Cargo has improved the organization of the build cache directory, uniformly applying build configuration hashes to reduce the risk of cache conflicts between different build configurations. The official statement says this adjustment helps reduce unnecessary recompilation and build result confusion, and also lays the foundation for future features such as cross-workspace cache deduplication and cache garbage collection.
Regarding software supply chain security, Rust 1.100 officially stabilizes Cargo's min-publish-age dependency version cooldown mechanism. Developers can set the minimum publish time interval for dependency packages in .cargo/config.toml, for example:
[registry]
global-min-publish-age = "3 days"
After setting this, Cargo will skip new versions published less than 3 days ago when resolving dependency versions, in order to leave time for automated scanning tools and the community to discover malicious package versions. Developers can also override this restriction for a single update through environment variables.
In addition, Rust 1.100 also stabilizes multiple standard library APIs, including comparison implementations between Vec, slices, and Cow types, as well as support for custom allocators in types such as Box, Arc, and Rc.
The official Rust statement says that users who have already installed previous versions through rustup can run the following command to upgrade to Rust 1.100.0 stable:
rustup update stable
This update not only completes the stabilization of the never type, a long-standing language feature, but also brings multiple improvements in custom memory allocation, Cargo dependency management, and software supply chain security.
- 《Announcing Rust 1.100.0 | Rust Blog》
Advertisement statement: External redirect links contained in the article (including but not limited to hyperlinks, QR codes, passwords, and other forms) are used to convey more information and save selection time. The results are for reference only. All articles on IT之家 containing external links include this statement.