TL;DR
WebAssembly がブラウザの外で動くための、標準的なシステムインタフェースを定めた仕様。
仕組み
WASI はインタフェースをユースケースごとに定義している。
wasi:io: ストリームを使った I/O 処理wasi:clocks: 経過時間の測定wasi:random: 乱数の生成wasi:filesystem: ファイル操作wasi:sockets: ソケット通信wasi:cli: コマンドラインアプリケーションwasi:http: プロキシのような、HTTP のリクエストとレスポンスに対する処理
Preview 2 は WebAssembly Component Model のインタフェースに従って作られている。
注意点
2024 年 10 月時点では、Preview 1(WASI 0.1)が広く使われており、対応するランタイムも多い。Preview 2(WASI 0.2)は開発中である。Preview 3 の議論も進んでおり、Preview 3 がそのまま Version 1 として標準化される予定である。