WebAssemblyコンポーネントモデル
概要
WebAssembly コンポーネントモデル(Component Model)は、WebAssembly モジュールを 言語非依存のインタフェースで組み合わせる ための標準的な仕組みです。書籍『Rustで学ぶWebAssembly』の到達点として扱われるテーマで、Wasm を「単体のモジュール」から「相互運用可能な部品(コンポーネント)」へと引き上げます。
解決する課題
- 素の Wasm モジュールは、数値などの低レベルな型しかやり取りできない
- 異なる言語で書かれたモジュール同士で、文字列・レコード・リストなどの高レベルな型を安全に受け渡したい
中心となる要素
- WIT(WebAssembly Interface Types) — コンポーネントのインタフェースを記述する言語
- World / Interface — コンポーネントが「何を必要とし、何を提供するか」を定義
- WASI Preview 2 — コンポーネントモデルに基づくシステムインタフェース
これにより、Rust で書いたコンポーネントと別言語のコンポーネントを、共通のインタフェース定義を介して組み合わせられます。
意義
- 言語の壁を越えた 再利用可能な部品 の流通
- 安全なプラグインアーキテクチャ(ソフトウェアアーキテクチャ の疎結合・進化容易性に対応)