【うぇぶあせんぶりー】
WebAssembly(Wasm) とは?
最終更新:
💡 コードを共通のバイナリ形式にし、対応環境で実行する
さまざまな言語のコンパイル先として使える、移植可能なバイナリ命令形式。対応するブラウザや実行環境で動き、WebではJavaScriptと連携して使う。高速な実行を目指すが、処理が必ず速くなるものではない。
📌 このページのポイント
- C/C++やRustなどからコンパイルする対象になる
- WebではJavaScriptと連携し、互いの機能を呼び出せる
- ブラウザ以外でも、対応する実行環境で利用できる
- 速度や対応機能は、処理内容と実行環境を確認する
WebAssemblyは、何を動かすの?
JavaScriptは不要になる?
WebではJavaScriptを補う設計だよ。JavaScriptからWasmの機能を呼び、Wasmから渡された機能を使うこともできる。アプリの画面やWebの機能と、移植した計算処理を組み合わせて使えるんだ
使えば10倍、100倍速くなる?
固定の倍率はないよ。計算に向いた設計だけれど、処理内容、コードの作り、読み込みや呼び出しなどを含む実行条件で結果が変わる。JavaScriptを一律に遅いと決めつけず、アプリ全体で効果を測ろう
ブラウザの外でも使える?
どの言語を選べばいい?
まとめ:ざっくりこれだけ覚えればOK!
「WebAssembly」って出てきたら「コードを共通のバイナリ形式にして、対応する環境で動かす技術」と思えばだいたいOK!
📖 おまけ:英語の意味
「WebAssembly (Wasm)」 = Web向けの低水準の命令形式
💬 Webとの連携を目指して設計され、Wasmとも略すよ。名前にWebと付くけれど、仕様はブラウザ以外での実行も想定しているんだ