Rust 1.100.0稳定版发布:版本号首次迈入三位数,带来多项语言与标准库更新

发布时间:2026-11-13 13:39

  Rust 团队于当地时间 11 月 12 日正式发布了最新的 Rust 1.100.0 稳定版,标志着 Rust 版本号首次迈入三位数阶段。

  本次更新带来了多项语言和标准库功能稳定化,同时改进了 Cargo 依赖管理、构建缓存及软件供应链安全机制。

  Rust 官方介绍称,Rust 1.100 最受关注的变化之一是never type正式稳定。该功能经过约 10 年时间以及 5 次稳定化尝试,终于进入稳定版本。

  永不返回类型使用!表示,代表永远不会产生返回值的计算过程。例如,return、break和std::process::exit等终止控制流的表达式都具有这一类型。此次更新允许开发者在任意位置显式使用!,包括Result等类型定义。

  与此同时,Rust 1.100 还将Infallible调整为永不返回类型!的别名,使此前使用Infallible的 API 能够与新类型兼容。这项调整也带来了一项兼容性变化:在 Rust 2015、2018 和 2021 版本中,永不返回类型的默认回退行为从改为!,少数代码可能因此受到影响。

  内存分配方面,新版本稳定了AllocatorAPI 的核心部分,允许开发者通过新稳定的Allocatortrait 定义自定义内存分配器,并将其用于部分标准库类型,目前包括Vec和Box。Rust 团队表示,这也是 Allocators 1.0 项目目标的重要进展,未来还计划将自定义分配器扩展至更多集合类型和指针类型。

  标准库还新增了core::mem::DropGuard,用于在变量离开作用域时执行指定闭包。开发者可以利用它处理函数正常返回、错误传播以及发生 panic 等不同退出路径,从而简化资源清理和事务回滚逻辑。

  此外,Rust 1.100 新增了std::mem::conjure_zst,为开发者在满足安全条件时创建零大小类型提供专门接口,减少此前通过transmute等方式创建此类值的需求。由于不当创建零大小类型可能破坏部分 API 的安全前提,该接口被设计为不安全操作。

  Cargo 包管理工具也获得多项改进。首先,Cargo 现在默认会提示开发者项目中未使用的依赖项,帮助减少不必要的编译工作。例如,当Cargo.toml中

  其次,Cargo 改进了构建缓存目录的组织方式,统一应用构建配置哈希,降低不同构建配置之间发生缓存冲突的风险。官方表示,这项调整有助于减少不必要的重新编译、构建结果混淆等问题,也为未来实现跨工作区缓存去重和缓存垃圾回收等功能奠定基础。

  设置后,Cargo 在解析依赖版本时会跳过发布时间不足 3 天的新版本,以便为自动化扫描工具和社区发现恶意软件包版本留出时间。开发者也可以通过环境变量在单次更新中覆盖这一限制。

  除此之外,Rust 1.100 还稳定了多项标准库 API,包括Vec、切片与Cow类型之间的比较实现,以及Box、Arc、Rc等类型对自定义分配器的支持。

  Rust 官方表示,已经通过rustup安装此前版本的用户,可以执行以下命令升级至 Rust 1.100.0 稳定版:

  本次更新不仅完成了永不返回类型这一长期语言功能的稳定化,也在自定义内存分配、Cargo 依赖管理和软件供应链安全方面带来了多项改进。

排行

精选