8月13日、Rustプロジェクトは2024年後半に向けて26のプロジェクト目標を発表した。
この目標は、Rustプロジェクトが初めて試みる新しいロードマップ策定プロセスの一環とであり、今後も半年ごとにこのプロセスが繰り返される予定である。
特に注目すべきは、 3つの主力目標 が設定されている点だ。これらの目標は、 Rust 2024エディション、 非同期Rust(Async Rust)の使用体験を同期Rust(Sync Rust)に近づける こと、そして Linuxカーネルが安定版Rustでビルドできるようにすること が挙げられる。
Rust 2024エディション
Rustのエディションとは、Rust言語の進化における主要な節目を示すもので、過去の互換性を保ちながらも新しい機能や改善を導入するための方法である。エディションは通常、数年に一度リリースされ、言語自体の進化を促すものとされている。
具体的には、エディションは以下のような役割を果たす:
新機能の導入:エディションでは、言語の新機能や改善が導入される。これには、文法の変更、新しい構文、改善されたコンパイル機能などが含まれる。
後方互換性の確保:新しいエディションがリリースされても、以前のエディションで書かれたコードが引き続き動作するように設計されている。これにより、既存のプロジェクトが破壊されることなく、新しいエディションに移行できるようになっている。
明確な移行パス:エディションは、プロジェクトが新しいエディションに移行するための明確なガイドラインを提供する。たとえば、Rust 2015エディションで書かれたコードをRust 2018エディションに移行する際に必要な変更点が明確に示される。
ツールチェインのサポート:Rustのツールチェイン(コンパイラ、Cargo、その他の開発ツール)は、複数のエディションをサポートしており、開発者はプロジェクトごとに使用するエディションを選択することができる。
2024年エディションでは、-> impl Trait
およびasync fn
のトレイトでのサポートや、gen
キーワードの予約、!
型のフォールバックの変更が計画されている。2024年エディションは Rust v1.85 (2025年2月20日リリース予定) に向けて作業が進められている。
非同期Rust(Async Rust)
2024年には、特に非同期クロージャーとSend
境界のサポートなど、非同期Rustの重要な機能が提供される予定である。これにより、非同期Rustの開発体験が同期Rustと同等レベルに向上することが期待される。
Rust for Linux
LinuxカーネルにおけるRust開発の実験的サポートは、Rustが低レベルのシステムアプリケーションを対象にできることを示す重要なステップである。しかし、現時点ではRustの不安定な機能(unstable features)に多数依存しており、実験段階を超えることは難しい。2024年後半には、これらの不安定な要素を解消し、サポートの安定化を図る。
その他の23目標
主力目標に加えて、ロードマップには他にも23の目標が定義されている。以下にその完全なリストを示す。
- 拡張されたconstジェネリクスの安定化可能なプロトタイプ
- yankedクレートに対する管理者提供の理由の追加
- プロジェクト目標スレートの構築
- 関連型ポジションでのimplトレイトの実装
- cargoへの統合に向けたcargo-semver-checksのブロッカー解消の開始
- Constトレイトの実装
- エルゴノミックな参照カウントの改善
- サンドボックス化されたビルドスクリプトの探索
- 自動微分とGPUオフロードのための実験的なLLVM機能の公開
- pubgrubの拡張によるcargoの依存関係解決の対応
- doctest時間を短縮するための「マージされたdoctests」の実装
- Rustdoc検索の学習を容易にする
- 次世代のトレイトソルバーの実装
- Clippyおよびリントの最適化
- 空の型のパターンの実装
- NightlyにおけるスケーラブルなPoloniusのサポート
- cargo-scriptの安定化
- doc_cfgの安定化
- 並列フロントエンドの安定化
- 標準ライブラリの安全性検証のためのツール調査
- a-mir-formalityのテストインフラおよび貢献者の確保
- rustcの診断出力にannotate-snippetsを使用
- ユーザー全体のビルドキャッシュの導入
目標に対する進捗状況については、定期的なブログ投稿を通じて報告される予定である。詳細を確認したい場合は、rust-lang/rust-project-goalsリポジトリの2024H2マイルストーンにて、各目標の追跡状況を確認することができる。
これらの目標すべてが完了する保証がないことは重要だ。多くの目標はボランティアによって提案および管理されており、計画通りに進まないことが当然のように予想される。目標が停滞した場合、新たな担当者を探すか、次回の目標設定ラウンドで再検討することになる。
詳細はこちらの記事を参照していただきたい。
Rust の非同期プログラミングは今後変更されます。これには、エコシステムによる非同期プログラミングのサポートの進歩と、非同期/待機構文の変更が含まれ、これにより並行かつ効率的なプログラムの作成が容易になります。 planet clicker