Rust 生态速览(2026 年 10 月)
Rust 学习模块的时事补充篇:把 2026 年秋天的版本动态和语言演进记录下来,帮你判断「现在学 Rust,学的版本和最新生态差多远」。事实均来自官方博客与发布页(文末附来源),更新截至 2026.10.22。
一、当前版本:1.99.1
Rust 保持六周一个版本的节奏,2026 年下半年已发布:
| 版本 | 日期 | 说明 |
|---|---|---|
| 1.98.0 | 2026.08.20 | 常规特性版 |
| 1.98.1 | 2026.09.03 | 修复点版本 |
| 1.99.0 | 2026.10.01 | 特性版(本文重点) |
| 1.99.1 | 2026.10.15 | 当前最新稳定版 |
bash
# 升级到最新
rustup update stable二、1.99.0 的三大语言级亮点
1. extern "C" 变参函数稳定
以前 Rust 只能调用 C 的变参函数(如 printf),现在可以用 Rust 编写 C ABI 的变参函数了——... 参数配合 VaList 类型,与 C 的 va_list ABI 兼容:
rust
/// SAFETY: 调用方必须至少传入 2 个 i32
unsafe extern "C" fn sum(mut args: ...) -> i32 {
let a = unsafe { args.next_arg::<i32>() };
let b = unsafe { args.next_arg::<i32>() };
a + b
}
fn foo() -> i32 {
unsafe { sum(0i32, 2i32) }
}意义:写操作系统内核、嵌入式引导、C 库接口时不再需要借助 C 编译器生成胶水层。VaList 上能读取哪些类型由 VaArgSafe trait 把关——依然是 Rust 式的安全边界。
2. 裸指针的布局信息
三个函数稳定:Layout::for_value_raw、mem::size_of_val_raw、mem::align_of_val_raw——对**未定尺寸类型(?Sized)**的裸指针也能安全地查询大小与对齐。这对自定义容器(如胖指针、trait 对象存储)的底层实现是关键补全。
3. Box::leak 的「回收」用法被正式劝退
语言语义没变,但官方文档明确建议:Box::leak 泄漏的内存不要再手动回收(round-trip unleak)。这类代码与当前和未来的编译器优化有冲突,尤其与即将稳定的 custom allocators(自定义分配器)特性冲突。需要长期持有就用 Box::into_non_null 或 Box::into_raw。
三、稳定化 API 速览
| API | 用途一句话 |
|---|---|
Vec::into_parts / Vec::from_parts | 拆分/重组 Vec 的指针-长度-容量三元组,零拷贝改造缓冲区的利器 |
Box::into_non_null / from_non_null | 基于 NonNull 的裸指针转换(比 into_raw 更表达「非空」语义) |
String::from_utf8_lossy_owned | 有损转 UTF-8 且直接接管原缓冲,省一次拷贝 |
std::fs::set_times / set_times_nofollow | 设置文件时间戳(可指定不跟随符号链接) |
IntoIterator for Box<[T; N]> | 装箱数组可直接 for 遍历 |
VecDeque::retain_back | 从尾部开始过滤 |
四、生态动向
- i686 Windows 目标降级(10 月 2 日):32 位 Windows 目标从 Tier 1 降为「仅 std 支持级」——32 位桌面场景持续萎缩的官方确认,新项目不必再顾虑它
- 版本号逼近 1.100:没有 Rust 2.0 的计划,版本号会自然进位——Rust 的稳定性承诺(edition 机制)让它敢于「永远 1.x」
五、对学习者的意义
对照本站 Rust 学习模块的结论:
- 基础语法零漂移:所有权、生命周期、trait、异步这些核心内容自 2015 年 1.0 以来语义稳定,rust1~rust23 的笔记不需要因版本更新而修改
- 新特性都是「边角增强」:1.99 的变参函数、裸指针布局属于 FFI 和底层库作者的武器,日常业务开发几乎无感——先学基础,新特性用到再查,这个策略完全正确
- 保持每 6 周一次
rustup update的习惯即可跟上生态;clippy 随版本更新会给出更准的 lint 建议
参考来源