Rust 1.96.1 发布:这个小版本值得尽快升级
Rust 团队发布了 1.96.1 点版本。它不是一个带来新语法的大版本,但对日常构建链路很关键:Cargo 的 HTTP 客户端补上了缺失的重试和超时处理,编译器修复了一个 MIR 优化导致的误编译问题,同时 Cargo 内置的 libssh2 也修复了三个 CVE。
对使用 Rust 的团队来说,这类 point release 往往比看起来更重要。它影响的不是“能不能写新代码”,而是“构建是否稳定、产物是否可信、供应链依赖是否安全”。
这次修了什么
Rust 1.96.1 的修复集中在三个方向:
- Cargo HTTP 客户端:修复缺失的 retries 和 timeouts,减少网络抖动时构建卡住或失败的概率。
- MIR 优化:修复一个可能导致误编译的优化问题。MIR 是 Rust 编译器中间表示的一部分,相关 bug 影响的是编译结果的正确性。
- libssh2 安全修复:Cargo 编译时包含 libssh2,本次修复了 CVE-2025-15661、CVE-2026-55199、CVE-2026-55200。
这里的重点不是“功能更多”,而是“工具链更稳”。如果你的 CI、发布流水线或开发机依赖 cargo build、cargo test、cargo publish,这个版本都值得纳入常规升级。
为什么 Cargo 的 HTTP 修复很实际
Rust 项目构建时经常需要访问 registry、下载 crate、同步索引或依赖缓存。网络一旦不稳定,缺少合理的重试和超时会带来两个典型问题:
- 构建任务长时间挂起,占住 CI runner。
- 临时网络错误直接导致失败,重跑一次又好了。
1.96.1 修复 Cargo HTTP 客户端中的相关问题后,不能保证所有网络问题消失,但可以减少“偶发失败”和“无意义等待”。对依赖较多、CI 并发较高、跨区域访问 crates registry 的团队尤其有价值。
可以这样升级和验证
如果你已经通过 rustup 安装 Rust,升级很直接:
rustup update stable
rustc --version
cargo --version
你应该看到稳定版工具链已经更新到 1.96.1。如果项目使用 rust-toolchain.toml 固定版本,可以这样改造:
[toolchain]
channel = "1.96.1"
components = ["rustfmt", "clippy"]
profile = "default"
然后在项目根目录验证:
rustup show
cargo clean
cargo test
cargo clippy --all-targets --all-features
如果你维护 CI,也可以显式指定稳定版本。以 GitHub Actions 为例,可以这样实践:
name: Rust CI
on:
push:
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust 1.96.1
run: |
rustup toolchain install 1.96.1 --profile minimal
rustup default 1.96.1
rustc --version
cargo --version
- name: Test
run: cargo test --all-features
如果你的仓库已经有 rust-toolchain.toml,CI 里通常不需要 rustup default,让 rustup 自动读取项目配置会更一致。
升级前后要看哪些信号
这次更新包含编译器误编译修复和 Cargo/libssh2 修复,建议不要只在本地跑一个 cargo build 就结束。更稳妥的检查清单是:
- 跑完整测试:至少执行
cargo test --all-features。 - 覆盖发布配置:如果有 release-only 代码路径,执行
cargo build --release。 - 检查 CI 缓存:确认缓存 key 不会把旧工具链和新工具链混在一起。
- 固定工具链:团队项目建议通过
rust-toolchain.toml明确版本,避免开发机和 CI 漂移。 - 关注私有 registry 或代理:Cargo HTTP 行为变化后,观察内部镜像、代理、registry 服务是否正常。
采用建议
Rust 1.96.1 是典型的“应该尽快吃掉”的维护版本。它没有要求你重写代码,也没有引入需要迁移的新特性;它修的是构建稳定性、编译正确性和 Cargo 依赖链上的安全问题。
对个人项目,可以直接 rustup update stable。对团队项目,建议先在 CI 分支固定 1.96.1,跑完整测试和 release 构建,再把 rust-toolchain.toml 合入主干。点版本升级的成本通常很低,但它能换来更少的构建噪音和更明确的安全基线。