サーバーサイドWebAssembly(Wasm)入門——WASIとコンポーネントモデルが拓く「移植可能なクラウドランタイム」の現在
はじめに——WebAssemblyはもうブラウザだけの技術ではない
「WebAssembly(Wasm)」と聞くと、多くの方はブラウザ上で高速描画を行うための技術を思い浮かべるでしょう。しかし2026年現在、Wasmはすでにサーバー側、それも私たちが日常的に触れている本番サービスの深部で動いています。
たとえばCloudflare Workers。世界中のエッジで動くこのサーバーレス関数環境では、WasmモジュールがV8 Isolate内で実行されます。Shopifyの決済ロジックをカスタマイズするShopify Functionsも、その関数本体はWasmにコンパイルされたコードです。さらに、マイクロサービス間通信の定番プロキシであるEnvoyも、envoy.filters.http.wasmというフィルタ経由でWasmプラグインとしてHTTPフィルタを実装できます。つまり、あなたが今日送ったHTTPリクエストのどこかで、Wasmが動いた可能性は十分に高いのです。
この変化を支えたのは2つの標準化です。1つはWASI(WebAssembly System Interface)——ブラウザの外、つまりサーバーや組込みデバイスでWasmを動かすための標準システムインターフェース。もう1つはコンポーネントモデル——異なる言語で書かれたWasm同士を、HTTP/JSONによるプロセス間通信を介さずに合成する仕組みです。この2つが揃ったことで、Wasmは「ブラウザ技術」から「移植可能なクラウドランタイム」へと役割を広げました。
本記事は、このサーバーサイドWasmに入門したい開発者のための、What is(何か)とHow to(どう始めるか)に答える実践ガイドです。WASIとコンポーネントモデルの基本から、2026年6月にリリースされたWASI 0.3の最新動向、主要ランタイムの比較、Cloudflare・Shopify・Envoyなどの本番事例、さらにコンテナ(Docker/Kubernetes)との徹底比較までを扱います。最後には、WasmtimeとSpinで実際に最初のWasm関数を動かす手順も用意しました。
「次のランタイム標準を先押さえしたい」——そんな方の、まず一冊分の教科書になれば幸いです。
What is サーバーサイドWasm?——WASIとコンポーネントモデルの基本
まず定義から確認しましょう。**WebAssembly(Wasm)**は、W3Cで標準化されたスタックベースの仮想マシン向けバイナリ命令形式です。C/C++/Rust/Goといった言語から「.wasm」という単一のバイナリにコンパイルすると、対応するホストAPIと機能を提供するランタイム間で、CPUアーキテクチャをまたいで動かしやすくなります。「書いたコードがどこでも動く」というJava以来の夢に近い理想を掲げる仕組みですが、必要なWASIバージョン、World、ホストインポート、ランタイム実装への依存がある点には注意が必要です。
しかし、Wasm単体ではファイル読み書きもネットワーク通信もできません。最初期のWasmはブラウザのJSから呼ばれることを前提に設計されていたからです。この「ブラウザの外で動かすには?」という課題に答えるのが**WASI(WebAssembly System Interface)**です。W3C WebAssembly CGのWASI Subgroupが開発する標準化トラックAPI仕様群で、ファイルシステム・時計・乱数・ネットワークなどのシステム機能を、セキュアな形でWasmに提供します(出典: wasi.dev)。
WASI最大の特徴はケイパビリティベース・サンドボックスです。Wasmモジュールは起動時に一切の権限(ambient authority)を持ちません。ファイルを読みたい? ネットワークに繋ぎたい? それらはすべて、ホスト側が明示的に「許可を渡した」ものだけが実行できます。wasi.devは、この能力ベース設計が典型的なOSプロセス分離よりも強い保証を提供し得ると説明していますが、実効的な安全性はランタイム実装、ホスト関数、設定、脆弱性対応の成熟度に依存します(出典: wasi.dev/security)。
そして、もう1つの柱がコンポーネントモデルです。従来のWasmモジュールは数値しかやり取りできず、言語を超えた連携にはHTTPやJSONといった「高コストでぎこちない」変換が必要でした。コンポーネントモデルは、**WIT(WebAssembly Interface Types)**というIDLでインターフェースを定義し、Rustで書いた部品とPythonで書いた部品を、HTTP/JSONによるプロセス間通信を介さず、Canonical ABIに基づく型付き呼び出しとして合成できます(出典: component-model.bytecodealliance.org)。wasi.dev自身が「プラグインモデルを持つすべてのプロジェクトはWASIを使うべき」と述べるように、次世代のプラグイン基盤として設計されているのです。
WASI標準化の現在——0.2(Preview 2)から0.3「ネイティブasync」へ
WASIの標準化は、これまでに3つのマイルストーンを刻んできました。0.1(Preview 1)、0.2(Preview 2)、そして**0.3(P3)**です。この流れを押さえると、サーバーサイドWasmが「今どこにいるか」が見えてきます。なお、WASIの現行バージョンとリリース日は、wasi.devのリリースページを主出典として確認してください(Component Model文書は概念・チュートリアルの出典として使い分けます)。
WASI 0.2.0は、WASI Subgroupの投票を経て2024年1月25日にリリースされました(出典: wasi.dev/releases/wasi-p2)。コンポーネントモデルを基盤に導入され、WITによるインターフェース定義と、HTTPプロキシ処理を標準化した wasi:http/proxy というWorld(アプリが依存するインターフェースの集合)が中心です。これにより「WasmでHTTPサーバーを書く」という最初の共通言語が生まれ、Spinや各種エッジプラットフォームがこのWorldをターゲットに実装を揃えました。
そしてWASI 0.3.0が2026年6月11日にリリースされ、さらに0.3系として0.3.1が2026年8月11日にリリース済みです(出典: wasi.dev/releases/wasi-p3)。目玉はなんといってもネイティブasyncサポートです。具体的には次の3つのプリミティブがCanonical ABIに組み込まれました。
async func— WITで関数をasync宣言。Rustではasync fn、JSではPromise、Pythonではコルーチンにバインディングが生成され、各言語の自然な非同期スタイルで書けますstream<T>— コンポーネント境界を越えて渡せる、型付きの非同期データチャネルfuture<T>— 単一値の非同期完了を表す型
従来、WASI 0.2では wasi:io パッケージのポーリングベースで非同期を表現していましたが、0.3ではこのパッケージが廃止され、stream/futureに置き換えられます。これが解決するのが「サンドイッチ問題」です。0.2では A→B→ホスト という連鎖のとき、中間のコンポーネントBがpollableを転送できず、ウェイクアップの連鎖が途切れてしまいました。0.3ではランタイム自身がスケジューリングとウェイクアップ伝播を所有するため、何段重ねたミドルウェアでも非同期が透過的に流れます。
またWorldsの再編も実務に影響します。wasi:cli/command、wasi:http/service(0.2のproxyを改名)、そしてリクエストパスミドルウェアを第一級サポートする wasi:http/middleware と、サーバー用途の語彙が整いました。0.2資産からの移行コストは無視できませんが、「ミドルウェアとしてWasmを挟む」パターンが標準語彙で書けるようになった意義は大きいでしょう。
主要ランタイム比較——Wasmtime、WasmEdge、Wasmer、Spinの特徴と選び方
「サーバーサイドWasmを始めたい」と思ったとき、最初の選択肢になるのがランタイムです。wasi.dev の "How to get started" が列挙する主要ランタイムを整理しましょう。
| ランタイム | 開発元 | 用途・フォーカス | 検証可能な特徴(公式資料に基づく) |
|---|---|---|---|
| Wasmtime | Bytecode Alliance | サーバー埋め込み・コンポーネント対応 | Craneliftコード生成、コンポーネントモデル対応(wasmtime.dev) |
| WasmEdge | CNCF | 組込み・エッジ・AI推論 | AI推論プラグインを提供(wasmedge.org) |
| WAMR | — | IoT・組込み・エッジ | マイクロランタイムとしての軽量性(WAMR公式リポジトリ) |
| wazero | — | Go環境への埋め込み | Go製・ゼロ依存、CGO不要(wazero.io) |
| Wasmer | — | 汎用・多言語バックエンド | 多様なバックエンドと言語バインディング(wasmer.io) |
| Jco | Bytecode Alliance | JS環境・ブラウザ内 | Node/ブラウザでWASIコンポーネント実行(github.com/bytecodealliance/jco) |
(出典: 各公式サイト。上表は公式資料で確認できる特徴に限定しています。主観的な「強み」評価は読者各自の検証をおすすめします)
中でもWasmtime(wasmtime.dev)は、サーバーサイド用途の代表的な実装です。Craneliftによる最適化コード生成と高速なインスタンス化に加え、Spectre緩和策や重要部分の形式検証への取り組みなど、セキュリティ姿勢に注力していることが公式ページで確認できます。本番で長期運用するならまず候補に挙がる存在です。
一方、アプリ開発寄りの立ち位置にあるのがSpinです。もともとFermyonが開発し、現在はSpin Frameworkとして spinframework.dev にドメインを移してv4が展開されています。Spinは単なるランタイムではなく、Rust/JS/TS/Pythonのテンプレートから spin new → spin build → spin up でHTTPアプリを起動できるアプリケーションフレームワークです。「とりあえず動くWasm Webサービスを作る」なら最短経路になります。
選び方の指針をまとめると、(1) 既存サーバーへの埋め込みならWasmtime、(2) 組込み・エッジAIならWasmEdge/WAMR、(3) Goアプリケーション内ならwazero、(4) まず体験したいならSpin——という棲み分けが現実的です。
実際にどこで動いているか——エッジ・SaaS・プロキシの本番事例
標準化の話だけでは「絵に描いた餅」かどうか分かりません。ここでは、すでに大規模本番環境でサーバーサイドWasmが動いている代表例を4つ見ていきましょう。
Cloudflare Workers。世界最大級のエッジサーバーレス基盤です。WorkersランタイムはV8エンジン上のIsolate方式で、1台のマシンのランタイムインスタンスが数千のユーザーアプリケーションを実行します。IsolateはVMと異なり既存のプロセス環境内に生成されるため、コールドスタートが原理的に排除される——これがCloudflareの主張する中心的優位性です。WasmモジュールもこのIsolate内で実行できます(出典: How Workers works、ブログ "Cloud Computing without Containers")。
Fastly Compute。旧Compute@Edgeとして知られる、Wasmベースのエッジコンピュートプラットフォームです。Rust/JS/Goなどで書いたコードをWasmにコンパイルしてデプロイし、CDNのPOP上で実行できます(出典: Fastly Compute docs)。
Shopify Functions。Eコマースの巨人Shopifyでは、割引・配送などのバックエンドロジックにサードパーティコードを注入する拡張機構を提供しています。その関数ロジックはWasmにコンパイルできる任意の言語で書けます。興味深いのは公式ドキュメントが「大きなカートで失敗しないよう、最も高性能なRustを強く推奨」と明記している点です。ミリ秒単位の実行時間制約がある環境では、Wasmの実行コスト管理が言語選択に直結する好例です(出典: shopify.dev)。
Envoy。マイクロサービスのフロントに立つ定番プロキシも、envoy.filters.http.wasm フィルタでHTTP処理をWasmプラグインとして実装できます(出典: Envoy Wasm filter)。なお公式ドキュメントはこのフィルタが活発な開発中(active development)であり、設定に変更がある可能性がある旨も注意しています。
カーネル近傍で動く軽量サンドボックスという点では、eBPFと対比すると位置づけが掴みやすいでしょう。eBPFが「Linuxカーネル内」の安全な拡張を担うのに対し、Wasmは「ユーザーランド・アプリ層」の安全な拡張を担う——両者は競合ではなく、レイヤーの異なる相補技術です。
Wasm vs コンテナ(Docker/Kubernetes)——起動・セキュリティ・メモリの徹底比較
「Wasmはコンテナを置き換えるのか?」——サーバーサイドWasmで最もよく聞かれる問いです。結論から言えば置き換えではなく共存なのですが、その判断材料として、まずは徹底比較を見てみましょう。
| 観点 | コンテナ(Docker/K8s) | サーバーサイドWasm |
|---|---|---|
| 起動時間(コールドスタート) | 一般に秒単位 | 一般にミリ秒単位とされる(条件により変動) |
| セキュリティ境界 | namespace/cgroup(カーネル分離・共有カーネル) | ケイパビリティベースのサンドボックス(権限ゼロ起動) |
| メモリフットプリント | OSユーザーランド込みで比較的大きめ | 個別インスタンスのオーバーヘッドを小さくしやすい |
| 移植性 | アーキテクチャ(amd64/arm64)別にビルド | 対応ランタイム間でCPUアーキテクチャ非依存 |
| 言語対応 | 事実上すべて(フルランタイム同梱) | Rust/Go/JS/TS/Python/C/C#等(コンパイル前提) |
| エコシステム成熟度 | 圧倒的に成熟(OCI/K8s) | 標準化途上(WASI 0.2→0.3移行期) |
| 現状の採用傾向 | 長時間・ステートフル含む万能 | 短時間・イベント駆動・プラグインで採用例が多い |
要するに、Wasmは「起動やインスタンス化のオーバーヘッドを小さくしやすく・権限ゼロ起動のサンドボックスで・個別インスタンスが軽い」代わりに、フル機能のOS APIを持たず(これは意図された制約です)、エコシステムは発展途上です。数値的な優劣はイメージ、ランタイム、事前コンパイル、言語、計測範囲で大きく変わるため、ここでは定性的な傾向として捉えてください。現状は短時間関数やプラグインで採用例が多く、長時間・状態保持型のワークロードではコンテナ側の運用エコシステムが成熟しています(仕様上Wasmプロセスが長時間実行や状態保持を扱えないわけではありません)。
一方で、この2つをつなぐ動きは着実に進んでいます。2022年10月、DockerはDocker+Wasmテクニカルプレビューを発表し、docker compose up 一発でWasmアプリをビルド・共有・実行できるようにしました(出典: Dockerブログ)。
さらに現在の本流となっているのが runwasi です。containerdのサブプロジェクトで、OCIイメージ化されたWasmをcontainerd/Kubelet CRI経由で実行するRustライブラリ+shim群です(出典: github.com/containerd/runwasi、runwasi.dev)。その上にSpinアプリをKubernetesのPodとして実行する SpinKube(containerd-shim-spin)が構築され(出典: github.com/spinkube/containerd-shim-spin)、「WasmをOCIイメージで配布し、K8sの運用フローで回す」道が実用化しつつあります。
つまり現実解は、コンテナという配布・運用の共通言語はそのままに、その中身のランタイムを場面に応じてWasmへ置き換えていく——という多層構造です。
How to 始めるか——Wasmtime/Spinで最初のWasm関数を動かす手順
概念はここまで。ここからは手を動かして、最初のWasm関数を動かすまでの最短経路を示します。
ステップ1: Wasmtimeをインストール
まずは公式ランタイムのWasmtimeを入れましょう。公式インストールスクリプトが用意されています。
curl https://wasmtime.dev/install.sh -sSf | bash
(出典: wasmtime.dev)
ステップ2: RustのHello WorldをWasmにコンパイルして実行
Rustが入っていれば、特別なフレームワークなしでWasmターゲットにコンパイルできます。
rustup target add wasm32-wasip1
mkdir hello && cd hello
cat > main.rs <<'EOF'
fn main() {
println!("Hello, Wasm!");
}
EOF
rustc --target wasm32-wasip1 main.rs -o hello.wasm
wasmtime hello.wasm # → Hello, Wasm!
wasm32-wasip1 はWASI 0.1世代のターゲットですが、最初の一歩として最もシンプルで、どのランタイムでも動きます。WASI 0.2/0.3の世界に入るには、cargo component などでコンポーネントをビルドします。
ステップ3: SpinでHTTPアプリを動かす
次に、フレームワーク側の体験です。Spinのクイックスタートに沿って進めます。install.sh実行後は、生成されたspinバイナリをPATH上へ移動する工程が必要です。
curl -fsSL https://spinframework.dev/downloads/install.sh | bash
sudo mv ./spin /usr/local/bin/spin # PATH上へ移動
spin --version # インストール確認
spin new http-rust hello-spin # JS/TS/Pythonテンプレートも選べる
cd hello-spin && spin build
spin up # → http://127.0.0.1:3000 で応答
(出典: Spin v4 クイックスタート)
ローカルで動いたら、レジストリへpushしてSpinKube経由でKubernetes上にPodとしてデプロイする流れに繋げられます。pushには完全なイメージ参照(例: spin registry push my-registry.example.com/hello-spin:v1)と、事前のレジストリ認証(spin registry login 等)が必要です。詳細は公式クイックスタートを参照してください。
次の学習リソース
コンポーネントモデルの公式チュートリアル(component-model.bytecodealliance.org)には、Rust・JS・Python・Go・C・C#・MoonBit向けのハンズオンが揃っています。まずは自分の主言語のチュートリアルを一通りこなすのが、WITインターフェースとコンポーネント合成の感覚を掴む最短ルートです。
AI・LLM時代のWasm——wasi-nn、ブラウザ内推論、ポータブルなAI関数
サーバーサイドWasmのもう1つの注目分野が、AI/LLMとの組み合わせです。
wasi-nnは、Wasmからニューラルネットワーク推論バックエンドを呼び出すためのWASI系API提案です。Rustなどのバインディングが提供され、Wasmtimeでは --wasi-modules=experimental-wasi-nn オプションで、WasmEdgeではwasi-nnプラグインとしてサポートされています。バックエンドにはOpenVINOなどが実装されており、LLM推論をサンドボックス化されたポータブルなWasmコードから呼び出せるのが基本構図です(出典: github.com/bytecodealliance/wasi-nn、仕様)。なおwasi-nnのバインディングはexperimentalであり、上流仕様の変更に伴う破壊的変更の可能性がある点に注意してください。
WasmEdgeのAI推論戦略は特に積極的です。CNCF配下のこのランタイムは、GGMLやONNXといったLLMバックエンドを統合するAI推論プラグインを軸に、エッジデバイス上でLLMを動かす「エッジAI」展開を推進しています(出典: WasmEdge AI docs)。実際にどの規模のモデルがどのデバイスで動くかは、モデル重量・量子化方式・バックエンド資源に依存するため、個別の検証が必要です。
ブラウザ内推論との関係も見逃せません。WebGPUブラウザ内AI推論では、transformers.jsなどがWebGPUアクセラレーションでブラウザ上でLLMを動かす流れが紹介されました。実はその下支えにこそWasmがいます。WebGPUが使えない環境へのフォールバック計算カーネルや、トークナイザなどの前処理ロジックには、Wasmとして配布されているものがあります。「ブラウザでもサーバーでも同じ推論コンポーネント」——Wasmの移植性はここで生きます。
将来像として興味深いのが、**AIモデルや推論関数を「Wasmコンポーネントとして配布する」**構想です。DockerイメージではなくコンポーネントとしてAI関数を配れば、起動は速く、実行はサンドボックス内、依存はWITインターフェースで厳密に宣言される——エッジへAI機能をばらまく「ポータブルなAI関数配布」の基盤として、Wasmはちょうど良い寸法の技術なのです。
よくある質問(FAQ)
サーバーサイドWasmとは何ですか?
WebAssembly(Wasm)をブラウザ外のサーバー・エッジ・組込み環境で実行する技術の総称です。標準システムインターフェース「WASI」と、異言語間合成の仕組み「コンポーネントモデル」の2つの標準化により、高速な起動・権限ゼロ起動のサンドボックス・CPUアーキテクチャに依存しない移植性を持つ軽量ランタイムとして使えます。代表例はCloudflare Workers、Fastly Compute、Shopify Functions、EnvoyのWasmプラグインです。
Wasmはコンテナ(Docker)の代替になりますか?
置き換えではなく共存が現実解です。Wasmは高速な起動とケイパビリティベースのサンドボックスを持ちますが、フル機能のOS APIを持たず、現状は短時間・イベント駆動の関数やプラグインでの採用例が多く、長時間・状態保持型のワークロードではコンテナ側の運用エコシステムが成熟しています。runwasi(containerd公式)やSpinKubeを使えば、OCIイメージの配布フローやKubernetesの運用フローにそのまま乗せられるため、「コンテナの配布・運用レイヤーはそのままに、中身のランタイムをWasmにする」という形で両者は協調します。
WASIのPreview 2(0.2)と0.3は何が違いますか?
最大の違いはネイティブasyncサポートです。2026年6月11日リリースのWASI 0.3.0では、async func / stream<T> / future<T> がコンポーネントモデルのCanonical ABIに組み込まれました。従来のポーリングベースの非同期を担っていた wasi:io パッケージは廃止され、中間コンポーネントを挟んでも非同期が途切れない「サンドイッチ問題」が解決。Worldsも wasi:http/service・wasi:http/middleware に再編され、ミドルウェア実装が標準語彙で書けるようになりました。
どの言語でサーバーサイドWasmを書けますか?
Rustが本命です。加えてJS/TS/Python/Go/C/C#などがコンポーネントモデルのチュートリアル対象になっています。ただしGC言語ではランタイムの扱いやバイナリサイズに工夫が必要で、ShopifyがFunctions実装で「最も高性能なRustを強く推奨」と明記しているように、厳しい実行時間制約下では処理系成熟度の差が出ます。まずはRust、慣れた言語で試すならJS/Pythonが入りやすいでしょう。
サーバーサイドWasmのセキュリティは本当に安全ですか?
設計思想としては堅牢です。Wasmは起動時に一切の権限(ambient authority)を持たず、ホストが明示的に許可した機能しか実行できないケイパビリティベース・サンドボックスであり、wasi.devはこれを典型的なOSプロセス分離より強い保証を提供し得ると説明しています。ただし実際の強度はホストランタイム実装の成熟度に依存します。WasmtimeがSpectre緩和や形式検証に取り組んでいるのはこのためで、「仕様が安全」であることと「実装が安全」であることの両方を確認して採用判断をするのが正しい向き合い方です。
まとめ——「第4のランタイム」への現実的な向き合い方
歴史を振り返ると、ソフトウェアの実行環境は抽象化を一段ずつ登ってきました。物理サーバーから仮想マシンへ、仮想マシンからコンテナへ。そして今、その次の段階としてWasmという「第4のランタイム」が姿を見せつつあります。
2026年時点での到達点を整理すると、次の3点に集約できるでしょう。
- 標準化の目途が立った — WASI 0.3.0(2026年6月11日リリース、0.3.1は2026年8月11日)でネイティブasyncが入り、コンポーネントモデルを基盤とするAPI体系が固まりつつある
- 本番実績がある — Cloudflare Workers、Fastly Compute、Shopify Functions、Envoyプラグインといった大規模サービスがすでに日常的にWasmを実行している
- 既存運用に乗る — runwasi、SpinKubeにより、OCIイメージ配布とKubernetes運用のフローをそのままWasmに適用できる
つまりサーバーサイドWasmは「将来の有望技術」ではなく、条件が揃った領域から順に採用が進む「実用期の技術」です。
その一方で、課題も正直に挙げておきます。WASI 0.2から0.3への移行コスト、デバッグや可観測性ツールのまだ発展途上なエコシステム、そしてフル機能のOS APIが意図的に持たされていない制約。これらは「Wasmで何をすべきでないか」を教えてくれるものであり、万能解ではないことの裏返しです。
現実的な向き合い方はこうです。プラグイン機構を作るとき、エッジや関数でコールドスタートが敵のとき、サードパーティコードを安全に実行したいとき——これらの場面でWasm(WASI+コンポーネントモデル)を第一候補に挙げる。それ以外の長時間・ステートフルなワークロードは、引き続きコンテナに任せる。レイヤーを混ぜず、適材適所で積み上げること。それが、この「第4のランタイム」と付き合う最も確実な戦略だと思います。
まずはWasmtimeでHello World、SpinでHTTP関数を1つ動かすところから始めてみてはいかがでしょうか。
参考文献
公式ドキュメント・一次情報
- WASI.dev 公式: https://wasi.dev/
- WASI 0.2 リリース: https://wasi.dev/releases/wasi-p2
- WASI 0.3 リリース解説: https://wasi.dev/releases/wasi-p3
- WASI セキュリティ(ケイパビリティベース): https://wasi.dev/security
- WebAssembly/WASI GitHub: https://github.com/WebAssembly/WASI
- コンポーネントモデル ドキュメント: https://component-model.bytecodealliance.org/
- Wasmtime 公式: https://wasmtime.dev/
- WasmEdge 公式: https://wasmedge.org/
- WasmEdge AI推論ドキュメント: https://wasmedge.org/docs/category/ai-inference
- wazero 公式: https://wazero.io/
- Wasmer 公式: https://wasmer.io/
- Jco: https://github.com/bytecodealliance/jco
- Spin(Spin Framework)v4 クイックスタート: https://spinframework.dev/v4/quickstart
- SpinKube containerd-shim-spin: https://github.com/spinkube/containerd-shim-spin
- Cloudflare Workers「How Workers works」: https://developers.cloudflare.com/workers/reference/how-workers-works/
- Cloudflare ブログ「Cloud Computing without Containers」: https://blog.cloudflare.com/cloud-computing-without-containers
- Fastly Compute ドキュメント: https://www.fastly.com/documentation/guides/compute
- Shopify Functions ドキュメント: https://shopify.dev/docs/apps/build/functions
- Envoy Wasm HTTPフィルタ: https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/wasm_filter
- Docker+Wasm Technical Preview: https://www.docker.com/blog/docker-wasm-technical-preview/
- InfoQ「Docker launched WebAssembly support」: https://www.infoq.com/news/2022/11/docker-webassembly/
- runwasi(containerd公式): https://github.com/containerd/runwasi / https://runwasi.dev/
- wasi-nn バインディング: https://github.com/bytecodealliance/wasi-nn / 仕様: https://github.com/WebAssembly/wasi-nn
日本語解説
- Qiita「WebAssembly(Wasm)サーバーサイド活用実践ガイド」(2026-03-21): https://qiita.com/0h-n0/items/e243baea7959ee978a88
- ISSOH「WASIとは」(2026-07-07): https://www.issoh.co.jp/tech/details/13251/