WebAssembly(Wasm)

一言まとめ

ブラウザとサーバーで動くポータブルなバイナリ命令形式。C / C++ / Rust / Go などからコンパイルし、計算の重い部分だけを JS から呼ぶのが典型。サーバー側は WASI でコンテナ代替として使われる。

作成 · 更新 · #wasm#browser#runtime
目次 6 sections
  1. 01 何か
  2. 02 使われどころ
  3. 03 JS の置き換えではない
  4. 04 標準化の動き(2026-04 時点)
  5. 05 関連
  6. 06 更新履歴

調査時点: 2026-04。

何か#

WebAssembly は、スタックベースの仮想マシン向けに設計されたバイナリ命令フォーマット。C / C++ / Rust / Go / AssemblyScript などのコンパイル言語からコンパイルして生成し、ブラウザやスタンドアロンのランタイムで実行する。

特徴中身
速度JIT コンパイルを前提にネイティブに近い実行速度。CPU 負荷の高い処理で JS より速い
ポータビリティ主要 4 ブラウザ、Node.js、Deno、スタンドアロンランタイム(Wasmtime・Wasmer)で動く
言語非依存複数言語から同じバイナリ形式を生成できる
サンドボックス既定ではファイルもネットワークも触れない。能力ベース(capability-based)のセキュリティモデル

使われどころ#

  • ブラウザ内の重い処理: 動画・画像編集、ゲーム、CAD、暗号化。Figma、Google Earth、AutoCAD Web が代表例。
  • サーバー・エッジ: WASI(WebAssembly からファイルなど実行環境の機能を使うための標準インターフェース) で OS API を抽象化し、コンテナの代替として使う(Fastly Compute、Cloudflare Workers など)。
  • プラグインシステムの埋め込みランタイム: Envoy、Shopify Functions、Zellij など。

JS の置き換えではない#

DOM 操作と UI ロジックは JS の領分のまま。Wasm は計算の重い部分をモジュール化し、JS から関数として呼び出す形で使う。

標準化の動き(2026-04 時点)#

  • Component Model: 言語間の相互運用を標準化する仕様。2024 年以降に本格化。
  • WASI Preview 2: ファイル・ネットワーク・時計などの OS 機能を標準化。
  • エッジランタイム各社(Cloudflare、Fastly、Fermyon)がコンテナ代替として推進。

主要言語の Component Model への追従度と、WASI Preview 2 のブラウザ側サポートは当時未確認。

関連#

更新履歴#

  • 2026-04-18: 初版(ローカル調査ノート)
  • 2026-10-17: Wiki へ移植、概念ページとして再構成

同じトピック — Web