【わし】

WASI とは?

最終更新:
💡 WebAssemblyと、外の機能をつなぐ共通の窓口

WebAssemblyのプログラムがファイルやネットワークなどを利用するための標準API群。実行環境が提供する機能との接点をそろえ、移植しやすくする。

📌 このページのポイント
WASI:外の機能への共通の窓口ホスト(実行環境)が機能を提供WebAssemblyのプログラムWASIのAPIを呼び出すファイル通信時計
実行環境が提供し、使用を認めた機能をWASIのAPIから利用する例です。利用できる機能は規格の版と実行環境によって異なります。
ひよこ ひよこ
WASIって何をつなぐの?
ペンギン先生 ペンギン先生
WebAssemblyのプログラムと、ファイルの読み書きや通信などの機能をつなぐAPIの規格だよ。WebAssembly本体だけで、どの環境でも使える共通のファイルAPIが決まっているわけではない。そこで、実行環境が提供する機能への接点をそろえるんだ。
ひよこ ひよこ
ブラウザの外でしか使わないの?
ペンギン先生 ペンギン先生
サーバーやコマンドラインの道具などでも役立つけれど、ブラウザ内での利用も想定されているよ。ブラウザのWebAssemblyが外の機能を一切使えない、という意味でもないんだ。JavaScriptなどを通じた橋渡しと、WASIの標準APIを使う方法を分けて考えよう。
ひよこ ひよこ
パソコンのファイルを勝手に読める?
ペンギン先生 ペンギン先生
WASIは、実行環境から渡された機能や資源を使う設計だよ。たとえばホスト側で特定のフォルダだけを使えるようにする。どこまで許すかを実行環境で設定することが大切で、「WASIだからどんなプログラムも必ず安全」と保証するものではないんだ。
ひよこ ひよこ
Preview 1やPreview 2って何?
ペンギン先生 ペンギン先生
規格の世代の呼び方だよ。0.1がPreview 1、0.2がPreview 2に当たる。2026年10月4日の確認時点では0.3が公開され、非同期処理の対応が加わっている。使うプログラム、ランタイム、開発ツールがどの版に対応するかを合わせて確認しよう。
ひよこ ひよこ
同じファイルなら、どこでもそのまま動く?
ペンギン先生 ペンギン先生
移植しやすくするための規格だけれど、対応するAPIや版、渡される権限が違えば、そのまま動くとは限らないよ。たとえばWebAssemblyの実行環境であるWasmtimeなどで利用できる。まずは実行環境が何を提供するかを確かめると、規格と実際の動作の違いが分かりやすいね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「WASI」って出てきたら「WebAssemblyが外の機能を使うための共通の窓口」と思えばだいたいOK!
📖 おまけ:英語の意味
「WebAssembly System Interface」 = WebAssemblyシステムインターフェース
💬 WebAssemblyにSystem Interface(システムとの接点)を提供する規格だよ

参考資料

← 用語集にもどる