.wasm
Other
WebAssemblyバイナリ
WebAssembly(Wasm)はスタックベースの仮想マシン用バイナリ命令フォーマットです。ゲーム、動画編集、CAD、科学シミュレーションなどのアプリケーションで、Webブラウザ上でネイティブに近いパフォーマンスを実現します。C、C++、Rust、Goのコードをコンパイルしてポータブルに実行できます。
MIMEタイプ
application/wasm
種類
バイナリ
圧縮
無劣化
メリット
- + Near-native execution speed in web browsers
- + Compile from C, C++, Rust, Go, and more
- + Sandboxed execution for security
- + Portable — runs in browsers and server-side via WASI
デメリット
- − No direct DOM access — requires JavaScript interop
- − Debugging is harder than JavaScript
- − Binary format is not human-readable
.WASMを使うタイミング
CPU集約的なWebアプリケーション、ブラウザへのネイティブコードの移植、WASIによるサーバーレスエッジ関数にWasmを使用してください。
技術的詳細
Wasmは型付き関数、リニアメモリ、安全性を保証する検証ステップを持つコンパクトなバイナリフォーマットを使用します。DOMへの直接アクセスのないサンドボックス環境で実行され、JavaScriptブリッジがI/Oを提供します。WASIはサーバーサイド用途にWasmを拡張します。
歴史
W3Cは2017年にMozilla、Google、Microsoft、Appleが開発したWebAssembly 1.0をリリースしました。決定論的で予測可能なパフォーマンスでJavaScriptを補完する、Web向けコンパイルターゲットとして設計されました。