WebAssemblyコンポーネントをコンテナイメージとしてDockerレジストリなどで配布可能にする「Wasm OCI Artifact layout」が、「WASI 0.2.1」仕様の一部として公開されました。WASIを推進するBytecode Allianceが発表しました。
WASI(WebAssembly System Interface)は、WebAssemblyをWebブラウザだけでなくサーバサイド上のランタイムなどでも実行可能にする仕様で、W3CのWASIサブグループ(WASISG)が策定しています。
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月に発表されました。
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アプリケーションの実用化を加速することが期待されます。
DockerWebAssemblyWeb標準コンテナ型仮想化プログラミング言語
クラウド
AWS /Azure /Google Cloud
クラウドネイティブ /サーバレス
クラウドのシェア /クラウドの障害
プログラミング言語
JavaScript /Java /.NET
WebAssembly /Web標準
開発ツール /テスト・品質
Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
(詳しいプロフィール)
Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで :Feed