
WebAssembly(Wasm)は2017年にW3C標準として公開された、Web向けの低レベルバイナリ命令フォーマットです。C/C++/Rust/Go等で書いたコードを Wasm に変換すれば、ブラウザ上で JavaScript と協調しながらネイティブに近い速度で動作。「ブラウザを真の汎用実行プラットフォームにする」というビジョンで、Google・Mozilla・Apple・Microsoftが共同で策定しました。
この記事の目次
- Wasmの基本
- Wasmの典型的なユースケース
- ブラウザ外でも動くWasm
- WasmとJavaScriptの関係
- まとめ
Wasmの基本

WebAssemblyは「ブラウザ用の仮想CPU命令セット」と考えると分かりやすいです。コンパイル済みの .wasm ファイルをブラウザがロードし、内蔵VMで実行します。JavaScriptと相互呼び出しでき、DOM操作はJavaScript側から行うのが基本構成です。
サポート言語は当初C/C++が中心でしたが、現在はRust、Go、AssemblyScript(TypeScript似)、C#(Blazor)、Pythonなど多岐に及びます。「ブラウザでネイティブ言語を動かす」夢が現実のものになりました。
Wasmの典型的なユースケース

Wasmが最初に大きく注目されたのはゲーム用途で、UnityやUnrealのWeb出力ターゲットになりました。Figma、Photoshop Web版、Google Earthなどクリエイティブ系の大型アプリも内部でWasmを多用しています。
JavaScriptでは遅すぎる重い計算(暗号、画像処理、物理シミュレーション)をWasmに逃がし、UIはJavaScriptで作る、というハイブリッドが現代的なWebアプリ最適化の定石です。
ブラウザ外でも動くWasm

Wasmは本来Web向けですが、近年は「ブラウザ外でも動くサンドボックス実行環境」として注目されています。WASI(WebAssembly System Interface)標準化により、ファイルI/Oなどの低レベルAPIが整備され、サーバサイドWasmランタイム(Wasmtime、Wasmer、WasmEdge等)が登場しました。
Cloudflare Workers、Fastly Compute@Edge、Fermyon Spinなどがエッジ実行環境としてWasmを採用。起動が極めて速く、サンドボックスで安全に動かせる特性から、「Dockerより軽い」次世代実行環境として期待されています。
WasmとJavaScriptの関係

WasmはJavaScriptを置き換えるものではなく、補完するものです。UI構築・イベント処理はJavaScript、計算量の多い部分やネイティブ資産の再利用はWasmが担う、という分業が現代的。
「JavaScriptが要らなくなる」という極端な予測は外れましたが、「ブラウザで動く言語の選択肢が広がった」という意味では、WasmはWebの歴史に確実な転換点をもたらしました。
まとめ
WebAssemblyはWebの限界を押し広げ、エッジコンピューティング・プラグイン基盤へと用途を広げる新しい実行環境です。Web開発者にとっては「ブラウザでネイティブ性能を引き出す」道具、インフラ側にとっては「軽量サンドボックスの未来」として、これからますます重要になります。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント