Rust 官方于 2026 年 5 月 28 日正式发布 Rust 1.96.0,带来了多项值得关注的新特性和安全修复。
![]()
新 Range 类型:可 Copy 的区间抽象
本次更新最引人注目的新特性是新的 Range 类型系列。与以往不同,这些新类型实现的是 IntoIterator 而非 Iterator,且支持 Copy trait。具体新增的类型包括 core::range::Range、core::range::RangeFrom、core::range::RangeInclusive 及其对应的迭代器。
这一设计的核心价值在于:开发者现在可以将 slice 访问器存储在支持 Copy 的类型中,而无需像以前那样分别存储 start 和 end 两个字段。一个典型的应用场景是用于实现代码位置的区间抽象。段代码展示了如何利用新的 Copy Range 类型封装一个位置区间,整个结构体可以安全地复制而不会出现引用语义上的困扰。
断言匹配宏:更便捷的模式验证
assert_matches! 和 debug_assert_matches! 两个宏在经过多个测试周期后正式稳定化。这两个宏用于检查某个值是否匹配给定的模式,在测试和协议验证场景中非常有用。由于这两个宏需要手动从 core 或 std 导入,Rust 团队选择这样的设计是为了避免与第三方 crate 可能存在的命名冲突。
WebAssembly 目标链接行为变更
对于 WebAssembly 目标平台,Rust 1.96.0 不再默认向链接器传递 --allow-undefined 参数。这意味着如果代码中存在未定义的符号,链接器将直接报错而非默认忽略。如果开发者需要恢复旧的行为,可以通过 RUSTFLAGS=-Clink-arg=--allow-undefined 来手动启用。
两个 Cargo 安全修复
本版本还包含两个 Cargo 安全公告,均已在 crates.io 上完成修复,对普通用户不产生影响:CVE-2026-5223(中等严重性)涉及 tarball 解压过程中符号链接的处理问题;CVE-2026-5222(低严重性)则涉及 URL 规范化中的身份验证相关问题。建议所有使用 Cargo 的开发者通过 rustup update stable 尽快完成升级。
参考来源:https://blog.rust-lang.org/2026/05/28/Rust-1.96.0/[1]
References
- https://blog.rust-lang.org/2026/05/28/Rust-1.96.0/: https://blog.rust-lang.org/2026/05/28/Rust-1.96.0/
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.