WASI 0.3正式版でWebAssembly連携が楽になる
WASI 0.3の正式版で、WebAssembly Componentの非同期処理と連携が共通基盤に近づいた。

WASI 0.3は、WebAssembly Componentの非同期処理を共通基盤へ寄せた正式仕様です。
ByteCode AllianceがWASI 0.3を正式版にしたことで、WebAssembly Componentを組み合わせる開発の前提が一段整理されました。WASI Preview 2では独自イベントループが分かれていましたが、0.3ではホストが1つのイベントループを管理します。
| Item | 役割 | 主な変更点 |
|---|---|---|
| WASI 0.1 | OS APIの抽象化 | WebAssemblyをスタンドアロン実行へ広げた |
| WASI 0.2 | Component model導入 | WIT、wasi-http、wasi-cli、wasi-clocksを整備 |
| WASI 0.3 | 非同期処理の共通化 | ホスト管理の単一イベントループへ変更 |
1. WASI 0.1: WebAssemblyをOSから切り離した起点
Get the latest AI news in your inbox
Weekly picks of model releases, tools, and deep dives — no spam, unsubscribe anytime.
No spam. Unsubscribe at any time.
最初のWASIは、WebAssemblyをブラウザ外でも動かすための土台でした。WebAssembly自体は2019年12月にW3C勧告となり、そこからOS APIを抽象化する流れが生まれました。

この段階の狙いは、プロセッサやOSの違いを気にせず、同じバイナリをさまざまな実行環境で扱えるようにすることです。WebAssemblyの移植性を、サーバーやローカルランタイムにも広げる入口になりました。
- 対象: Webブラウザ外の実行環境
- 目的: OS依存のAPIを隠す
- 位置づけ: WASI Preview 1 / WASI 0.1
2. WASI 0.2: コンポーネントモデルとWITを導入
WASI 0.2では、WebAssemblyを部品単位で組み合わせる発想が前面に出ました。言語ごとに書いたコンポーネントをつなぎ、アプリケーションを構成するための共通仕様が整えられています。
ここで重要なのがWITです。WITはコンポーネントモデルのIDLで、インターフェイスをどう記述するかをそろえます。あわせて、HTTP、CLI、時刻取得などの基本機能もシステムインターフェイスとして整備されました。
- WIT: WebAssembly Interface Type
- 代表的なインターフェイス: wasi-http、wasi-cli、wasi-clocks
- 狙い: 言語をまたいだ部品化
3. WASI 0.3: 非同期処理をホスト側でまとめる
WASI 0.3の目玉は、コンポーネントごとの独立したイベントループをやめたことです。以前は各コンポーネントが自前で非同期処理を持つため、別のコンポーネントと組み合わせにくい場面がありました。

新しい仕様では、コンポーネント群全体のホストが1つのイベントループを管理します。これで非同期APIを持つ部品も同じ基盤で扱えるため、連携の難しさが減ります。インターフェイスにも変更が入りました。
- 変更前: コンポーネントごとに独自イベントループ
- 変更後: ホストが単一イベントループを管理
- 効果: 非同期コンポーネントの組み合わせがしやすい
4. Wasmtime 46: 実装を先に試せる
仕様だけで終わらないのが今回のポイントです。WASIのリファレンス実装である[Wasmtime](https://wasmtime.dev/)は、6月20日予定の46でWASI 0.3を実装し、非同期処理をデフォルト有効にする見込みです。
仕様の安定版と実装の追随が近いので、開発者は移行の感触を早めにつかめます。新しいWASIの考え方を試すなら、まずここを見るのが現実的です。
- リファレンス実装: Wasmtime
- 予定バージョン: 46
- 注目点: asyncがデフォルト有効
5. Component model 1.0に向けた次の宿題
ByteCode Allianceは、WASIをComponent model 1.0へ進める途中段階と位置づけています。今後はABIの改善、2つ以上のWebブラウザ上のランタイム実装、実装しやすさの向上が課題です。
つまりWASI 0.3は終点ではなく、コンポーネントモデルを実用の共通土台へ寄せるための中間地点です。非同期処理の統一は、その先の相互運用性を高めるための基礎工事と言えます。
- 目標: Component model 1.0
- 課題: ABI改善
- 課題: 複数ランタイムでの実装拡大
How to decide
WebAssemblyを部品として組み合わせたい人は、WASI 0.2と0.3の違いを押さえる価値があります。言語横断のコンポーネント設計を重視するなら0.2、非同期処理の混在や連携を気にするなら0.3が重要です。
すぐ試したいならWasmtime 46の動きが実務に近い指標になります。仕様の理解を深めたい読者は、WITとイベントループの責務分担を先に追うと整理しやすいでしょう。
// Related Articles
- [IND]
OpenAI service terms put app risk on users
- [IND]
Anthropic’s Fable shutdown pushes teams to own models
- [IND]
DARA shows how think tanks can use AI with trust
- [IND]
Chrome V8 zero-day needs an immediate browser restart
- [IND]
Qualcomm is right to bet on AI devices, not just AI apps
- [IND]
China’s Open-Source AI Play Is Pressuring U.S. Labs