Rust 1.100

2026/11/13 3:39

Rust 1.100

RSS: https://news.ycombinator.com/rss

要約▶

Japanese Translation:

はい、元のサマリーは具体的な技術的な安定化の範囲を捉えたり、アロケータの機能に関する曖昧さを解消したりするために改善が必要です。

改訂されたサマリー: Rust チームは公式にバージョン 1.100.0 をリリースしました。これは長待たされてきた機能である「never type」(

!
)を安定化させ、より効率的でカスタマイズ可能なメモリ管理システムを構築するための強力な新 API を導入するマイルストーンです。このリリースには、トランザクションのような安全性を提供する
DropGuard
API、ゼロサイズタイプを作成するための
conjure_zst
、および
Vec
および
Box
用のアロケータに特化したコンストラクタなど、主要な機能が追加されています。

アップグレードするには、ユーザーは

rustup update stable
を実行するか、
rustup
が不足している場合は Rust ウェブサイトからツールを直接ダウンロードしてください。ほとんどの変更は安全ですが、2024 年版より前のエディションのユーザーにとっては重要な不互換の変更があります:never type の内部フォールバックが
()
から
!
にシフトしました。開発者はコードを調整し、互換性を維持するために新しい
Infallible
アリアスを使用する必要があります。また、このアップデートは Cargo において重大な安全性の向上をもたらしており、未使用の依存関係に対するデフォルト警告や、サプライチェーンリスクを軽減するための最小公開年齢の設定などが含まれます。チームは、早期の問題発見に貢献し、よりスムーズなエコシステムの発展を実現するため、ユーザーがベータまたはナイトリーチャンネルで今後のリリースを試すことを推奨しています。

本文

Rust 1.100.0 のリリースのお知らせ

Rust チームより、Rust 1.100.0 が正式にリリースされました。信頼性が高く効率的なソフトウェア開発を可能にするプログラミング言語です。

インストールとアップデート

rustup
を通じて以前のバージョンをインストールしている場合は、以下のコマンドを実行してください。

$ rustup update stable

まだインストールしていない方は、公式ウェブサイトから

rustup
をダウンロードし、リリースノートを確認してください。

テスト目的でベータ版やナイティ版を使用する場合は、ローカル環境で更新を検討してください。

  • ベータチャンネル:
    rustup default beta
  • ナイティチャンネル:
    rustup default nightly

不具合を発見の際は、ぜひご報告ください!


新機能と改善点

Never 型 (
!
) の安定化

10 年間の開発と 5 回の試みに伴い、ついに**「Never 型」**が安定化されました。この型は、決して値に到達しない分岐を表します。

  • 定義: コード内で
    !
    と記述されます(例:
    return
    、
    break
    、
    std::process::exit
    など)。
  • 強制変換 (Coercion): 値が存在しないため、任意の型への変換が許可されます。これにより
    match
    または
    if
    の一部の分岐から無条件に抜けることが可能になります。
    fn mrrrow(option: Option<u32>) {
        let value = match option {
            Some(x) => x,
            None => return, // `!` を `u32` に強制変換する
        };
        // ...
    }
    
  • 名前指定の可能化: 以前は戻り型としてのみ命名できたものが、今回は任意の場所で指定可能です。
    fn infallible_unwrap<T>(res: Result<T, !>) -> T {
        let Ok(v) = res;
        v
    }
    
  • Infallible の変更:
    Infallible
    が
    !
    の別名に変わりました。互換性を保つため、以前使用していた API も
    !
    として動作します。
    • エディションへの影響: 2024 年版以前(2015, 2018, 2021)のエディションでは、フォールバック値が
      ()
      から
      !
      に変更されます。稀なケースでコードに影響を与える可能性があります。

Allocator API の安定化

カスタムアロケータを定義し、標準ライブラリ型(

Vec
,
Box
)と共同で使用できるようになりました。

  • 新トレーイト: 新しく安定化した
    Allocator
    トレーイトを通じて有効化されます。
  • プロジェクトゴール: これにより「Allocators 1.0」の基盤が完成し、近い将来さらに多くの機能が安定化する予定です。

DropGuard: クロージャーによる全終了パスの実行

Drop
トレーイトは通常、変数がスコープ外になった際に実行されます(
return
,
?
, パニックなどに関係なく)。

しかし、単に関数終了時にコードを実行したい場合のために、新しいヘルパー型

core::mem::DropGuard
が導入されました。

  • 機能: 変数とクロージャーを受け取り、破棄時にクロージャーを実行して変数を消費します。
  • rollback 対応:
    dismiss
    メソッドを実装しており、ガードから変数を返すことができます。トランザクション型 API の実装に適しています。
    use std::mem::DropGuard;
    
    fn parse_all(nums: &mut Vec<u32>, strings: &[&str]) -> Result<(), ParseIntError> {
        let len = nums.len();
        let mut nums = DropGuard::new(nums, move |nums| {
            nums.truncate(len); // 失敗時のロールバック処理
        });
    
        for s in strings {
            nums.push(s.parse()?); // エラーなら自動ロールバック
        }
    
        DropGuard::dismiss(nums); // 成功ならガード解除
        Ok(())
    }
    

Zero-Sized Type (ZST) の生成ガイドラインの明確化

ゼロサイズ型を unsafe な方法で作成する際の推奨アプローチが明確化されました。

  • 専用関数:
    std::mem::conjure_zst
    を使用することで、安全性を保証した ZST の作成が可能です。
  • 注意点: この関数は
    unsafe
    です。多くの API は安全性のために ZST の作成を禁止しており、誤って生成すると前提条件(例:Python GIL 保持)が違反されるリスクがあります。

Cargo: 未使用の依存関係の報告

ビルド速度低下の原因となる使われなくなった依存関係を、Cargo が自動的に検出して警告します。

  • 検出対象: 特定のプラットフォームやビルドターゲットでのみ必要な依存関係です。
  • 警告表示例:
    warning: unused dependency `tracing-subscriber`
      --> Cargo.toml:23:1
       |
    23 | tracing-subscriber.workspace = true
       | ^^^^^^^^^^^^^^^^^^
       |
      = note: `cargo::unused_dependencies` はデフォルトで `warn` に設定されています
    help: `tracing-subscriber` への依存関係の削除を検討してください
    
  • 表示制限: すべてのビルドターゲットが実行された場合のみ表示されます。部分的なチェック(例:
    cargo check --bin foo
    )では表示されません。

Cargo キャッシュ競合の削減

ビルドディレクトリの再構成により、キャッシュの衝突や不要な再ビルドが減りました。

  • 変更内容: ビルド設定のハッシュを consistently 適用し、ファイルタイプ中心からビルドステップ中心に整理しました。
  • 効果:
    build-dir
    を共有する Git ワークツリーでの問題が改善され、より確実なキャッシュ利用が可能になります。
  • 今後の計画: この変更は「ビルドディレクトリのレイアウト」プロジェクトゴールの基盤となり、ガベージコレクションやクロスワークスペースキャッシングなど、さらに多くの改善へのマイルストーンとなります。

Cargo min-publish-age(依存関係のクールダウン)

サプライチェーン攻撃を軽減するために、新しいパッケージの公開から数日待つ仕組みが導入されました。

  • 設定方法:
    .cargo/config.toml
    で有効化します。
    [registry]
    global-min-publish-age = "3 days"
    
  • 動作: 新しいバージョンが公開されていても、設定された期間(例:3 日)未満の場合はインストールに含みません。
  • 例外: 緊急対応時は
    CARGO_RESOLVER_INCOMPATIBLE_PUBLISH_AGE=allow
    フラグを使用できます。

安定化した API

以下の API が正式に安定化されました。

Never 型 (

!
) 関連:

  • impl AsRef<T> for !
  • impl AsMut<T> for !
  • core::mem::DropGuard
  • core::mem::conjure_zst

Allocator 関連:

  • std::alloc::Allocator
    ,
    Global
    ,
    System
    の実装および関連メソッド (
    Box::new_in
    ,
    Vec::new_in
    など)
  • アロケータ指定のコンストラクタや変換メソッド (
    from_raw_in
    ,
    into_raw_with_allocator
    など)

メモリ管理・安全:

  • UnsafeCell::replace
  • UnsafeCell::as_ref_unchecked
  • UnsafeCell::as_mut_unchecked
  • std::sync::Once::Default
    の実装
  • Box::take
    ,
    Box::map
    ,
    Rc::map
    ,
    Arc::map
  • Vec::from_fn

文字列・パス:

  • str::trim_prefix
    ,
    str::trim_suffix
  • [T]::trim_prefix
    ,
    [T]::trim_suffix
  • Path::trim_prefix

その他:

  • Child::main_thread_handle
    (プロセス管理)
  • os::windows::process::CommandExt::show_window
  • bool::toggle

今後の予定

  • ビルドディレクトリのレイアウト: 2025 年のプロジェクトゴールとして、キャッシュのガベージコレクションやクロスワークスペースキャッシングの機能をブロック解除する予定です。
  • crates.io サプライチェーン強化: 隔離サポートや疑わしいリリースの自動検出など、エコシステム保護のためのさらなる作業が進められています。

謝辞

Rust 1.100.0 の実現には多くの貢献者が協力しました。皆様のおかげでこのリリースが可能になりました。感謝申し上げます!

同じ日のほかのニュース

一覧に戻る →

2026/11/13 3:52

ジェミニ4水和素およびオーケストレーター

## Japanese Translation: 本日、Google は独立した AI モデル「Gemini 4 Hydrogen」を発表し、人工知能分析指数(Artificial Analysis Intelligence Index)でスコア 51 を記録して Argon の 50 を上回るとともに、Terminal-Bench 4.1 で 57% のスコアを取得し、前 versions の 3.8 Flash バージョンの性能を 3 倍以上向上させました。このリリースでは、「Orchestrator」という動的システムが新たに導入されました。これは現在、Google AI Ultra サブスクリプションユーザーに利用可能であり、Hydrogen と Carbon 計画モデルを組み合わせることで複雑なワークフローを最適化します。静的ルーティングシステムとは異なり、Orchestrator は双方向のアプローチを採用しており、Carbon が読み取り専用フェーズと計画を担当し、Hydrogen が書き込み、編集、テストを担当します。Hydrogen が困難に遭遇した場合は、自動的に Carbon に戻って計画の修復を受け、その後再開を行います。この動的な協調により、Carbon のタスク成功率达到にほぼ匹敵しつつ、コンピューティングクォータは 24% 削減し、タスク完了を 19% 高速化を実現しています。開発者は Antigravity SDK を直接使用して多モデルパイプラインに対するプログラム制御を行うことができ、Hydrogen は推論深度の 4 レベル(low、medium、high、xhigh)を提供します。今後の更新では、オープンソースデモへのアクセスが拡大され、例えばエージェントが高速な反復と高レベルのセキュリティチェックの間で任務を分担する問題の分類など、新たなユースケースが追加される予定です。最終的に、このイノベーションは要求の高いソフトウェア開発タスクに対して効率的なリソース配分を提供し、速度や品質を損なうことなく高度な低遅延推論機能を備えています。

2026/11/13 6:13

Foundation Models フレームワーク (macOS)

## Japanese Translation: Apple の Foundation Models フレームワークは、大規模言語モデルをシームレスに統合するネイティブ Swift API を提供することで、アプリ開発を革新します。その最も重要な特徴は、オンデバイスまたはクラウドにあるどの AI モデルプロバイダーにも、複雑な設定なしでアクセスできるようにする統一プロトコルです。ガイド付き生成、ツール呼び出し、画像理解(マルチモーダルプロンプト、Vision フレームワークによる OCR、バーコードスキャンを含む)、ダイナミックプロファイルといった組み込みツールがワークフローを簡素化し、Evaluations フレームワークはプロンプトのテストおよび動的条件下での機能検証を可能にします。プライバシー重視の Private Cloud Compute は、ユーザーデータが安全な環境外に出るか Apple によって保存されることはありません。特に、App Store Small Business プログラムに登録しており、初回ダウンロード数が 200 万未満の開発者は、これらのリソースを無料でお使いいただけます。さらに、新しい Python SDK がエコシステムのリーチを広げ、人気ツールとの統合を容易にし、カスタムスキルやコンテキスト管理ヘルパーなどの実験的機能を備えたオープンソースユーティリティパッケージが提供されています。今後、macOS 27 ではフルアプリケーションを書かずに高速なスクリプト作成と自動化を実現する `fm` CLI ツールを導入します。多様なモデル機能—from オンデバイス機能から Claude サーバーサイドの巨人まで—を一元化することで、このフレームワークは開発を簡素化しユーザーデータを保護し、あらゆるデバイスにわたる AI 統合のための堅牢な未来を確立します。

2026/11/13 2:02

Show HN: 刺繍機がサブスクリプション制だったので、自分でアプリを作りました

## Japanese Translation: ZigZag は、AI エージェントをワークフローに直接統合し、デザインの作成方法を革新する強力な Rust ベースの刺繍エディタです。その最も重要な特徴は、ビルトインの Model Context Protocol (MCP) サポートであり、これにより AI ツールが複雑なローカル Rust 環境のインストールを必要とせず、デザインを生成したりソフトウェアと対話したりできます。このアプローチにより、macOS、Windows、Linux で最小限の設定で高機能なアートワークを制作でき、全体の刺繍業界でのアクセシビリティが拡大します。 エディタは Adobe Illustrator に似た直感的な Studio インターフェースを提供し、ペン、シェイプ、ブラシ、テキスト、パスファインダーツール、ス마트 ガイドを備えています。デジタルアートを機械で即座に使用可能なステッチファイルに変換し、Fill(充填)、Satin(サテン)、Run、Contour、Blanket、Appliqué、Manual、Meander、Ripple、Cross-stitch、Tartan といった多様なステッチタイプを対応します。また、広めのサテン用の自動分割機能などの特性も備えています。デザイン制作だけでなく、先進的な計画機能による生産効率の最適化も行い、カット回数を最小限に抑え、移動ステッチを論理的にルート付け(例:形状の内側へ)、キャップオーダーを管理し、必要な場合のみトリミングします。 ソフトウェアは、標準、薄手綿キャップ、構造系キャップ、ニット素材といったファブリックプリセットに対して、狭い充填、広め・細いサテン、小さな文字、微小な隙間、リングフィット、完全に覆われたオブジェクトに対する広範な検証チェックをサポートします。また、PES、DST、EXP、JEF、VP3、PEC、PEN などの多数の形式をエクスポートし、Brother Skitch (PP1) などの機械との互換性を保証します。 ZigZag は、Bluetooth 経由での対応可能な機械への直接接続を通じて、デジタルコンセプトから物理的な刺繍に至るまでのプロセス全体を簡素化します。Agent パネルは MCP を介して AI モデル(例:Claude Code または Codex)を実行し、バックグラウンドでデザインを構築します。AI エージェントがデザインを下書きにする段階、配置する段階、リスタイルする段階において、リアルタイムのビジュアルフィードバックを提供します。プラットフォーム固有のサポートには以下の通りです: - **macOS**: Apple Silicon と Intel マック (macOS 11+) を対象とした DMG ファイルで、Apple 署名・検証済みのバイナリが含まれます。 - **Windows**: Rust のインストールなしで動作する、64 ビット Windows 10 (1709+) または 11 を対象とした Zip ファイルです。 - **Linux**: X11/Wayland と OpenGL 開発ライブラリが必要であり、Bluetooth 機能のために vendored な libdbus が含まれています。