この変更が意味すること
Rust 1.96.0 がリリースされました。日常的な Rust 開発に影響する最大のポイントは Rust 1.94.0 で導入された回帰バグの修正です。ManuallyDrop 型の定数をパターンとして使用できなくなっていた問題が解消され、以前の動作に戻ります。
unsafe コードや FFI を多用するプロジェクト、または低レベルメモリ管理を行うライブラリで ManuallyDrop を活用している場合、このリリースへの更新で問題が解消されます。
また、組み込み/産業向け開発者には s390x(IBM Z シリーズ)ベクタレジスタのインラインアセンブリ対応と LoongArch Linux のリンクリラクゼーション有効化も影響します。一般的な Rust 開発者にとっては、ライブラリの NonZero 整数型で範囲反復が使えるようになる改善も実用的です。
主な変更点
ManuallyDrop を定数パターンとして使用可能に(回帰修正)
Rust 1.94.0 で意図せず導入されたリグレッションを修正します。ManuallyDrop<T> の定数値をパターンマッチングで使用できるようになります。(#154891)
use std::mem::ManuallyDrop;
const X: ManuallyDrop<i32> = ManuallyDrop::new(42);
match value {
X => println!("matched"), // 1.94.0〜1.95.0 ではコンパイルエラー → 1.96.0 で修正
_ => println!("other"),
}
cfg マクロで expr メタ変数が使用可能に
cfg 属性に expr メタ変数を渡せるようになりました。条件コンパイルとマクロを組み合わせた高度なメタプログラミングが簡潔に書けます。(#146961)
タプル式での never 型の一貫したコーション
タプル式内で never 型(!)が現れた場合のコーション挙動が一貫化されました。型推論がより予測可能になります。(#147834)
NonZero 整数型の範囲反復
NonZero<u8> などの NonZero 型で範囲演算子(..)を使った反復が可能になります。ゼロを除く正整数の繰り返し処理がより自然に書けます。
s390x ベクタレジスタのインラインアセンブリ対応
IBM Z シリーズ(s390x)プラットフォーム向けのインラインアセンブリで、ベクタレジスタ(VR)が使用可能になりました。(#154184)
LoongArch Linux のリンクリラクゼーション有効化
LoongArch Linux ターゲットでリンクリラクゼーション機能が有効化され、生成バイナリのサイズ効率と起動パフォーマンスが改善されます。(#153427)
riscv64gc-unknown-fuchsia のベースライン更新
riscv64gc-unknown-fuchsia ターゲットのベースラインが RVA22 + vector に更新されました。(#155072)
EOL / サポート状況
Rust は 6 週間ごとにリリースされる rolling release モデルを採用しています。新バージョンがリリースされると、前のバージョンはセキュリティサポート対象から外れます。
| バージョン | ステータス | リリース日 |
|---|---|---|
| 1.96 | ✅ 現行 | 2026-05-28 |
| 1.95 | 旧バージョン | 2026-04-16 |
| 1.94 | ❌ EOL | 2026-04-16(EOL) |
| 1.93 | ❌ EOL | 2026-03-06(EOL) |
rustup update stable を実行することで、常に最新の stable バージョンに追従できます。
開発者への影響
- ManuallyDrop パターン使用者: 1.94.0 または 1.95.0 にアップデート後にコンパイルエラーが発生した場合、1.96.0 で解消されます。
- マクロ開発者:
cfgへのexprメタ変数渡しが可能になり、より柔軟な条件コンパイルの記述ができます。 - s390x プラットフォーム開発者: インラインアセンブリでベクタレジスタを使った SIMD 最適化が可能になります。
- 一般的な Rust 開発者: Breaking Changes はなく、
rustup update stableで安全にアップデートできます。
アップデート方法
# rustup を使用している場合(推奨)
rustup update stable
# バージョン確認
rustc --version
# rustc 1.96.0 (XXXXXXX 2026-05-28)
# Cargo.toml の edition に影響はありません
# 既存プロジェクトはそのままアップデート可能です
データソース: GitHub Releases API, endoflife.date AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
