IT之家 11 月 13 日消息,Rust 团队于当地时间 11 月 12 日正式发布了最新的 Rust 1.100.0 稳定版,标志着 Rust 版本号首次迈入三位数阶段。
本次更新带来了多项语言和标准库功能稳定化,同时改进了 Cargo 依赖管理、构建缓存及软件供应链安全机制。

Rust 官方介绍称,Rust 1.100 最受关注的变化之一是 never type(永不返回类型)正式稳定。该功能经过约 10 年时间以及 5 次稳定化尝试,终于进入稳定版本。
永不返回类型使用 ! 表示,代表永远不会产生返回值的计算过程。例如,return、break 和 std::process::exit 等终止控制流的表达式都具有这一类型。此次更新允许开发者在任意位置显式使用 !,包括 Result<T, !> 等类型定义。
与此同时,Rust 1.100 还将 Infallible 调整为永不返回类型 ! 的别名,使此前使用 Infallible 的 API 能够与新类型兼容。IT之家注意到,这项调整也带来了一项兼容性变化:在 Rust 2015、2018 和 2021 版本中,永不返回类型的默认回退行为从 () 改为 !,少数代码可能因此受到影响。
内存分配方面,新版本稳定了 Allocator API 的核心部分,允许开发者通过新稳定的 Allocator trait 定义自定义内存分配器,并将其用于部分标准库类型,目前包括 Vec 和 Box。Rust 团队表示,这也是 Allocators 1.0 项目目标的重要进展,未来还计划将自定义分配器扩展至更多集合类型和指针类型。
标准库还新增了 core::mem::DropGuard,用于在变量离开作用域时执行指定闭包。开发者可以利用它处理函数正常返回、错误传播以及发生 panic 等不同退出路径,从而简化资源清理和事务回滚逻辑。
此外,Rust 1.100 新增了 std::mem::conjure_zst,为开发者在满足安全条件时创建零大小类型(ZST)提供专门接口,减少此前通过 transmute 等方式创建此类值的需求。由于不当创建零大小类型可能破坏部分 API 的安全前提,该接口被设计为不安全操作。
Cargo 包管理工具也获得多项改进。首先,Cargo 现在默认会提示开发者项目中未使用的依赖项,帮助减少不必要的编译工作。例如,当 Cargo.toml 中声明的依赖没有被相关构建目标使用时,系统会给出 unused dependency 警告。
其次,Cargo 改进了构建缓存目录的组织方式,统一应用构建配置哈希,降低不同构建配置之间发生缓存冲突的风险。官方表示,这项调整有助于减少不必要的重新编译、构建结果混淆等问题,也为未来实现跨工作区缓存去重和缓存垃圾回收等功能奠定基础。
在软件供应链安全方面,Rust 1.100 正式稳定了 Cargo 的 min-publish-age 依赖版本冷却机制。开发者可以在 .cargo/config.toml 中设置依赖包的最短发布时间间隔,例如:
[registry] global-min-publish-age = "3 days"
设置后,Cargo 在解析依赖版本时会跳过发布时间不足 3 天的新版本,以便为自动化扫描工具和社区发现恶意软件包版本留出时间。开发者也可以通过环境变量在单次更新中覆盖这一限制。
除此之外,Rust 1.100 还稳定了多项标准库 API,包括 Vec、切片与 Cow 类型之间的比较实现,以及 Box、Arc、Rc 等类型对自定义分配器的支持。
Rust 官方表示,已经通过 rustup 安装此前版本的用户,可以执行以下命令升级至 Rust 1.100.0 稳定版:
rustup update stable
本次更新不仅完成了永不返回类型这一长期语言功能的稳定化,也在自定义内存分配、Cargo 依赖管理和软件供应链安全方面带来了多项改进。
参考资料:
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家包含外链的文章均包含本声明。