WASI (WebAssembly System Interface)
WebAssemblyにコンパイルされたソフトウェアがファイル・ネットワーク・時刻・乱数などOS機能にアクセスするための標準API仕様群。ブラウザのサンドボックスの外(サーバー・エッジ・組込機器)でWasmを動かす際の「システムコール」に相当する。
必要性
HTTPマイクロサービスのような重い仕組みなしに、異なる言語で書かれたコンポーネント同士を安全に組み合わせられるようにする。プラグインモデルやマルチ言語SDKを持つプロジェクトに向く。
バージョン推移
Preview 1 → Preview 2(WASI 0.2、モジュール化されComponent Model上に構築、WITで定義された安定版) → Preview 3(WASI 0.3、2026年2月導入。WITのstream<T>/future<T>によるネイティブ非同期I/Oサポートを追加)。
セキュリティモデル
capability-basedサンドボックス。Wasmモジュール/コンポーネントは起動時に権限を一切持たず、ホスト側が明示的に許可した操作しか実行できない。
代表的なランタイム
Wasmtime、WasmEdge、WAMR、wazero(Go製)、Wasmer、wasmi/wasm3(組込向け軽量実装)など。