首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Rust 1.93.0 更新正式发布:史上最细版本解读,语言特性、编译器、库与 Cargo、Rustdoc 全面革新!

Rust 1.93.0 更新正式发布:史上最细版本解读,语言特性、编译器、库与 Cargo、Rustdoc 全面革新!

作者头像
福大大架构师每日一题
发布2026-01-28 10:38:10
发布2026-01-28 10:38:10
3180
举报

2026年1月22日,Rust 官方正式发布 Rust 1.93.0。本次更新带来了语言层面的多项稳定特性、编译器优化、平台支持拓展、标准库改进以及 Cargo 和 Rustdoc 的实用增强。这一版本在性能、安全性和系统兼容性方面都有显著提升。以下为详细版本更新内容解析。

一、语言特性更新

Rust 1.93.0 对语言层面进行了多项稳定化与行为修正:

  • • 稳定 s390x 向量相关目标特性以及 is_s390x_feature_detected! 宏。
  • • 支持系统 ABI 下的 C 风格可变参数函数声明稳定化
  • • 当使用某些关键字作为 cfg 条件 时,编译器会明确报错。
  • asm_cfg 特性正式稳定。
  • • 在 常量求值(const-evaluation) 期间支持按字节复制指针。
  • LUB 强制转换(Least Upper Bound coercions)现在能够正确处理函数项类型及安全性不同的函数。
  • • 允许包含可变引用静态项的 const 项(非常危险,但并非总是未定义行为)。
  • • 新增两个警告默认开启的 lint:
    • const_item_interior_mutations:警告对具有内部可变性的 const 项进行变更操作。
    • function_casts_as_integer:警告将函数指针强制转为整数类型的操作。

二、编译器优化

  • • 编译器稳定化了 -Cjump-tables=bool 参数(之前为 -Zno-jump-tables)。 该项影响函数跳转表生成方式,助力优化调度与体积。

三、平台支持扩展

  • • 新增 riscv64a23-unknown-linux-gnu 平台,晋升为 Tier 2(不包含宿主工具)。 关于 Tier 分级的更多信息可参考 Rust 平台支持页面。

四、标准库关键更新

本次标准库在安全与性能之间进行了平衡调整,核心变化如下:

  • • 停止在内部对 Copy trait 使用特化(specialization),因为在依赖生命周期的 Copy 实现中会导致不安全行为。这可能造成性能回退,部分标准库 API 会调用 Clone::clone 而非位复制。
  • • 允许 全局分配器(global allocator) 使用线程局部存储以及 std::thread::current()
  • • 修复 BTree::append 行为,确保当附加键已存在时,不会更新已有键。
  • • 不再要求 T: RefUnwindSafe 对应 vec::IntoIter<T>: UnwindSafe

五、稳定化的 API

Rust 1.93.0 稳定了一批新 API,进一步增强底层能力与安全控制:

  • <[MaybeUninit<T>]>::assume_init_drop
  • <[MaybeUninit<T>]>::assume_init_ref
  • <[MaybeUninit<T>]>::assume_init_mut
  • <[MaybeUninit<T>]>::write_copy_of_slice
  • <[MaybeUninit<T>]>::write_clone_of_slice
  • String::into_raw_parts
  • Vec::into_raw_parts
  • <iN>::unchecked_neg
  • <iN>::unchecked_shl
  • <iN>::unchecked_shr
  • <uN>::unchecked_shl
  • <uN>::unchecked_shr
  • <[T]>::as_array
  • <[T]>::as_mut_array
  • <*const [T]>::as_array
  • <*mut [T]>::as_mut_array
  • VecDeque::pop_front_if
  • VecDeque::pop_back_if
  • Duration::from_nanos_u128
  • char::MAX_LEN_UTF8
  • char::MAX_LEN_UTF16
  • std::fmt::from_fn
  • std::fmt::FromFn

这些新增稳定接口提升了内存控制、数值操作及格式化能力。


六、Cargo 更新

本次 Cargo 工具也有不少实用增强:

  • • 根据编译 profile,在构建脚本中启用 CARGO_CFG_DEBUG_ASSERTIONS
  • • 在 cargo tree 命令中,支持长形式的 --format 变量
  • • 新增 --workspace 参数支持到 cargo clean 命令。

七、Rustdoc 改进

Rustdoc 文档生成器的体验进一步优化:

  • • 移除 #![doc(document_private_items)]
  • • 搜索过滤中包括 属性宏及派生宏
  • • 搜索过滤中包括 extern crate 导入项
  • • 增强 crate 级文档属性校验,例如 html_favicon_urlhtml_logo_urlhtml_playground_urlissue_tracker_base_urlhtml_no_source。 如果这些属性值缺失、异常或类型错误,将触发默认拒绝(deny-by-default)lint —— rustdoc::invalid_doc_attributes

八、兼容性与行为变更

本次更新还带来多项兼容性提示及未来预警:

  • • 新增 pin_v2 到内置属性命名空间。
  • • 捆绑的 musl 更新至 1.2.5
  • • 在 Emscripten 环境中,panic=unwind 时的异常 ABI 由 JS 异常改为 wasm 异常处理 ABI。链接 C/C++ 对象时需传入 -fwasm-exceptions。 在 nightly Rust 上,可通过 -Zwasm-emscripten-eh=false -Zbuild-std 获取旧行为,但未来会移除。
  • • 当在无意义的地方(如 trait 方法或类型)使用 #[test] 属性时,编译器现将报错,不再忽略;同时 rustdoc 生成也会出错。
  • • Cargo 在更多场景下设置 CARGO_CFG_DEBUG_ASSERTIONS 环境变量,这可能导致依赖 static-init 1.0.1–1.0.3 的 crate 编译失败。
  • • 在 offset_of! 宏中,用户自定义类型将检查是否结构良好。
  • • 执行 cargo publish 时,当 build.build-dir 未设置时,不再生成可访问的 .crate 文件工件。
  • • lint deref_nullptr 从警告默认(warn-by-default)提升为默认拒绝(deny-by-default)。
  • • 新增未来兼容性警告:
    • • 针对函数参数中未模式绑定(pattern)的 ... 参数,除 extern 块之外提醒。
    • • 针对 repr(C) 枚举的 discriminant 值不适配 c_int/c_uint。
    • • 针对 repr(transparent) 的行为忽略 repr(C) 类型警告。

九、总结

代码地址:github.com/rust-lang/rust

Rust 1.93.0 是一次稳健且深度的更新版本。从语言细节到标准库安全修正、再到平台支持与工具链增强,都体现了 Rust 一贯的“安全、并发、性能”核心理念。无论是编译器优化、Cargo 构建体验,还是 Rustdoc 文档一致性,都在此版本迎来全面进步。

Rust 1.93.0 的发布标志着 Rust 在系统级语言领域持续迈进,为开发者提供更强的安全保证和更高效的编译环境。

结语: Rust 1.93.0 不仅是一个版本号,更是语言设计成熟度的再一次体现。开发者可立即升级体验最新稳定特性,享受更强的系统安全与开发效率。

我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-01-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 福大大架构师每日一题 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、语言特性更新
  • 二、编译器优化
  • 三、平台支持扩展
  • 四、标准库关键更新
  • 五、稳定化的 API
  • 六、Cargo 更新
  • 七、Rustdoc 改进
  • 八、兼容性与行为变更
  • 九、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档