プログラミング言語・Rustの開発チームは、5月2日(現地時間)にリリースされる「Rust 1.78」から、新たなWASIターゲットとしてwasm32-wasip1(tier 2)とwasm32-wasip2(tier 3)を導入する。
wasm32-wasip1は、既存のWASIターゲットであるwasm32-wasiの名前を変更したものであり、2025年1月5日(現地時間)にリリースされる「Rust 1.84」ではwasm32-wasiが削除されることから、その前に新ターゲットへの移行が推奨される。なお、wasm32-unknown-unknownとwasm32-unknown-emscriptenは、この変更の影響を受けない。
今回の名前変更は、最終的なWASI 1.0ターゲットを見越してターゲット名の一貫性を維持すべく行われ、9月5日(現地時間)にリリースされるRust 1.81では、wasm32-wasiを使用しているユーザーに対してwasm32-wasip1への移行を促す警告表示が行われるようになる。最終的に、Rust 1.84ではwasm32-wasiが安定版リリースチャネルでは提供されないようになる。
そのほか、5年近くの作業を経てWASI 0.2仕様が安定してきたことを受けて、Rust 1.78ではWASI 0.2専用のターゲットであるwasm32-wasip2が導入される。
Rustで書かれたコードは、WASI 0.1バイナリを取得してshimを使用してWASI 0.2コンポーネントへの変更が可能なツールである、cargo-componentでWASI 0.2にコンパイルできる。またcargo-componentは、cargo build、cargo test、cargo runといった、一般的なcargoコマンドのネイティブサポートも提供している。この方法では翻訳レイヤが追加されるため非効率的ではあるものの、WASI 0.2の開発を開始するのに十分な機能を提供してくれる。
なお、Rust開発チームは翻訳レイヤを不要にすべく、Rust 1.78においてTier 3のwasm32-wasip2ターゲットを導入する。wasm32-wasip2では当初、stdlibなどあるべき機能の多くが含まれていないためターゲットとしての使用は推奨されない。今後機能追加を進めていく中で、Tier 2ターゲットとしての基準を満たして一般使用が可能な状態とすることを目指しており、2024年末までの作業完了を予定しているという。
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です