とは?†
WebAssembly(略称:Wasm)は、ブラウザ上でネイティブ並みの高速な実行性能を持つバイナリフォーマットです。
C/C++、Rust、Goなどの言語からコンパイルされ、JavaScriptと並んでWebアプリケーションの主要な実行基盤となっています。
- 高速な実行性能
- セキュアなサンドボックス環境
- マルチプラットフォーム対応(ブラウザ・サーバーサイド)
- JavaScriptとの相互運用が可能
- サイズが小さく、ダウンロードと起動が高速
主な利用シーン†
- 高性能なゲーム(例:Unity WebGL)
- ブラウザベースの画像・動画編集
- 科学計算やデータ処理
- 既存のC/C++資産のWeb移植
- リアルタイムビデオ会議(例:Google Meetの背景ぼかし)
メリット†
- ネイティブアプリケーション並みのパフォーマンス
- 既存のライブラリ資産を再利用可能
- ブラウザの制約を超えたリッチな表現
- セキュリティ重視の設計
デメリット†
- バイナリ形式のためデバッグが難しい
- JavaScriptと比べて開発環境構築が複雑
- 完全なスタンドアロンアプリ開発には向かない(JavaScript補助が必要な場合が多い)
関連技術†
- Emscripten:C/C++をWasmにコンパイルするツールチェーン
- WebAssembly System Interface(WASI):Wasmをサーバーサイドで動かすための標準API
- AssemblyScript:TypeScriptベースでWasmを生成する言語
外部リンク†