つみかさね
R

Rust v1.96.0

リリース日: 2026-05-30データソース: GitHub Releases, npm, endoflife.date
影響度スコア
25/ 100影響度: 低
Breaking Changes0/40
新機能12/25
バグ修正8/20
セキュリティ0/15
依存関係5/15

対応ガイド

medium|推奨バグ修正影響: 限定的

推奨アクション

  1. 1rustup update stable を実行してアップデート
  2. 2既存プロジェクトでビルドとテストを確認
  3. 3ManuallyDropのパターン使用コードが意図通り動作するか検証

影響対象

Rust開発者ManuallyDropをパターン使用しているプロジェクトs390xプラットフォーム開発者

補足

  • -Breaking Changesなし。通常のrustup updateで安全にアップデートできます
RustManuallyDropパターンマッチs390xLoongArch

この変更が意味すること

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❌ EOL2026-04-16(EOL)
1.93❌ EOL2026-03-06(EOL)

rustup update stable を実行することで、常に最新の stable バージョンに追従できます。

開発者への影響

  1. ManuallyDrop パターン使用者: 1.94.0 または 1.95.0 にアップデート後にコンパイルエラーが発生した場合、1.96.0 で解消されます。
  2. マクロ開発者: cfg への expr メタ変数渡しが可能になり、より柔軟な条件コンパイルの記述ができます。
  3. s390x プラットフォーム開発者: インラインアセンブリでベクタレジスタを使った SIMD 最適化が可能になります。
  4. 一般的な 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 により自動生成されています。正確性については原文をご確認ください。

アップデート判断

早めのアップデートを推奨

アップデートすべき場合

  • ManuallyDropをパターンとして使用しているプロジェクト(回帰修正あり)
  • rustup update stableで安全にアップデートできる全ての開発者

様子見でよい場合

  • プロダクションクリティカルなリリース直前の環境
  • CI環境でツールチェインをピン留めしていて影響を確認したい場合

EOL / サポート状況

Rust 1.96Active
Rust 1.95ActiveEOL: 2026-05-28
Rust 1.94End of LifeEOL: 2026-04-16
Rust 1.93End of LifeEOL: 2026-03-06
Xでシェアはてブ
データソース: GitHub Releases API, npm Registry, endoflife.date (MIT License), NVD (NIST)
AI解説は Claude API により自動生成されています。正確性については原文リリースノートをご確認ください。