WebAssemblyをコンテナイメージとし、コンテナレジストリなどで配布可能にする「Wasm OCI Artifact layout」仕様が登場
WebAssemblyコンポーネントをコンテナイメージとしてDockerレジストリなどで配布可能にする「Wasm OCI Artifact layout」が、「WASI 0.2.1」仕様の一部として公開されました。WASIを推進するBytecode Allianceが発表しました。
WASI(WebAssembly System Interface)は、WebAssemblyをWebブラウザだけでなくサーバサイド上のランタイムなどでも実行可能にする仕様で、W3CのWASIサブグループ(WASISG)が策定しています。
コンポーネントモデルを備えたWASI 0.2が登場
WebAssemblyはもともとWebブラウザ上で高速に実行可能なバイナリフォーマットとして登場しました。
そしてWebAssemblyをサーバサイドのWebAssemblyランタイムでも実行可能にするため、POSIXを参考にファイルシステムAPIなどを抽象化してWebAssemblyからアクセスできる仕様として2019年に登場したのが「WASI」(WASI 0.1)です。
その後このWASIを見直し、WebAssemblyバイナリを部品のように自由に組み合わせてアプリケーションを構築できるコンポーネントモデルを採用した新たなWASI仕様のWASI Preview 2(WASI P2もしくはWASI 0.2)が2024年1月に安定版として公開されました。
参考:WebAssemblyを進化させる「WASI Preview 2」が安定版に到達。OSや言語に依存しないコンポーネントモデルを実現
今後はこのWASI 0.2をベースに互換性を保ちつつWASIのバージョンアップが予定されています。
その最初のバージョンアップであるWASI 0.2.1が今年(2024年)8月に発表されました。
WASMコンポーネントがDockerレジストリで配布可能に
WASI 0.2.1では2つの新機能が追加されています。
1つはWebAssemblyコンポーネントのインターフェイスを定義する「WIT」(Wasm Interface Types)の「@since」ノーテーションが追加され、そのインターフェイスが設定されたコンポーネントのバージョンが記述できるようになりました。
そしてもう1つが、WebAssemblyモジュールやコンポーネントをOCI(Open Container Initiative)仕様に準拠したコンテナイメージとして定義し、Dockerレジストリなどで配布可能にする「Wasm OCI Artifact layout」です。
これにより、いわゆるDockerコンテナがコンテナレジストリに保存されているさまざまなコンテナイメージをロードして簡単に実行できるのと同じように、WebAssemblyモジュールをコンテナレジストリに登録して共有し、それをWebAssemblyランタイムやWebAssemblyの実行機能を備えたコンテナランタイムにロードして手軽に実行できるようになります。
WebAssemblyはクラウドネイティブの文脈でも注目されてきた技術です。Wasm OCI Artifact layoutの登場はクラウドネイティブにおけるWebAssemblyアプリケーションの実用化を加速することが期待されます。
あわせて読みたい
日本ではKubernetesやCI/CDなどが幻滅期に、インダストリクラウドやインフラ自動化は過度な期待。「日本におけるクラウド・プラットフォームのハイプ・サイクル」2024年版発表
≪前の記事
Redisをフォークした「Valkey」初のメジャーバージョンアップ「Valkey 8.0」正式リリース。非同期I/Oスレッディングによる高速化など強化