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 として標準化される予定である。

関連

出典