WebAssembly(Wasm)
一言まとめ
ブラウザとサーバーで動くポータブルなバイナリ命令形式。C / C++ / Rust / Go などからコンパイルし、計算の重い部分だけを JS から呼ぶのが典型。サーバー側は WASI でコンテナ代替として使われる。
目次 6 sections
調査時点: 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
- 単一画面の Canvas ツールのスタック選定(vanilla TS / Svelte / Preact と PWA ツーリング)
- DAM カラオケ検索(clubdam)の挙動と制約
- Core Web Vitals と画像最適化
- favicon の最小構成(SVG + ICO + apple-touch-icon + manifest)
- フロントエンドのフレームワークとツールの動き(2025)
- HTML-in-Canvas API
- HTML-in-Canvas の実現性(a11y・性能・セットアップ・シェーダー)
- iOS Safari で canvas の画像を保存させる(download 属性 / Web Share / 長押し)
- 日本語 Web フォントのライセンスとサブセット化
- 個人サイトのライブウィジェットと外部 API の制限
- モダン CSS / Web API の対応状況(2025-2026)
- OPFS(Origin Private File System)
- Google Places API のキーの守り方(ブラウザ露出 vs サーバ中継)
- iOS の PWA 制限
- 機能別 React / TS ライブラリ対応表(2026-04 時点)
- URL 長の上限と日本語の URL エンコード膨張
- 書き出すテキストファイルの UTF-8 BOM と Markdown 継続行
- 縦書き Web の実装(writing-mode・ルビ・圏点・縦中横・禁則)
- PWA の Web Share Target(Android)の実測と落とし穴
- YouTube oEmbed で動画タイトルとチャンネル名を取る