INDIE INDEX

リリース

WebAssembly とは|ブラウザなどで動かすために作られた、機械に近い形のプログラムの形式

言葉の意味

WebAssembly(ウェブアセンブリ)は、プログラムを機械に近い形で表したファイルの形式です。これは、積み重ねの形で計算を行う仮想の機械のための、2進数の命令の形式です。短くして Wasm(ワズム)とも呼ばれます。

人がこの形式を直に書くことは、ふつうはありません。C や C++(どちらも、機械に近いところまで書けるプログラミング言語)で書いたものを、この形へ変換して使います。この形式は、プログラミング言語の変換先として持ち運べる形に設計されています。これによって、ブラウザの側でもサーバーの側でもアプリを配れます。

必要になる理由

ブラウザの中でそのまま動く言語は JavaScript(Web のページを動かすためのプログラミング言語)です。すでに C や C++ で書かれたものを、ブラウザでも動かしたい場合、書き直すのは大きな作業になります。

WebAssembly があれば、書き直さずに変換して動かせます。この形式は、広く使われている機械の作りを活かして、その機械で直に動かすのに近い速さで動くことを目指しています。

実際の使われ方

変換には、専用のツールを使います。C と C++ には Emscripten があります。

Emscripten の公式ドキュメントは、この形式を既定の書き出しの形としていて、持ち運べる形で書かれた C・C++ のコードなら、絵を描き・音を鳴らすゲームから、アプリの枠組みまで、ほとんどどれでも変換できると書いています。実際に変換された例として Unreal Engine 4 と Unity のエンジンを挙げています。

関係する決まり

この形式の開かれた標準は、主なブラウザすべての代表が加わる W3C(Web の標準を決める団体)の中の2つの集まりで作られています。

仕様の本体は、この形式の中核を定めた文書として W3C から公開されています。2026年9月18日の時点での版は2番目のものです。

安全については、公式サイトが、この形式を、記憶域について安全で、外と切り離された実行の場だと書いています。Web に埋め込まれたときは、ブラウザが持つ、配信元の同一性と許可についての決まりがそのまま当てはまります。

読みやすさについても決まりがあります。不具合を追うため、試すため、学ぶため、教えるため、そして手で書くために、文字の形にも整えられるよう設計されています。Web 上でこの形式の中身を見るときは、その文字の形が使われます。

混同されやすい言葉

JavaScript は、ブラウザの中でそのまま動く言語です。WebAssembly は言語そのものではなく、変換された結果の形式です。

公式サイトは、この形式の部品が JavaScript との間で互いに呼び合えること、JavaScript から使えるのと同じ Web の決まりを通してブラウザの機能に手が届くことを書いています。また、Web 以外の場所に埋め込んで使うことにも対応しているとしています。

情報源

WebAssembly が出てくるページ7

この言葉を定義している公式のページ

公式の定義

近くにある言葉

同じところで使うツール