WebAssemblyとは?
うぇぶあせんぶりー
WebAssemblyとは、ウェブブラウザ上でC/C++やRustなど様々な言語で書かれたコードをネイティブに近い速度で実行するためのバイナリ形式の命令セットおよび実行環境です。
WebAssembly(略称:Wasm)は、ウェブブラウザをはじめとする環境で高速に実行できるポータブルなバイナリフォーマットです。W3C(World Wide Web Consortium)によって標準化されており、2019年にW3C勧告として正式採択されました。
これまでブラウザ上でネイティブに実行できる言語は事実上JavaScriptのみでした。JavaScriptは柔軟で強力な言語ですが、計算量の多い処理ではパフォーマンスに限界があります。WebAssemblyはC・C++・Rust・Goなど様々なプログラミング言語から変換して生成できるバイナリ形式のコードであり、ブラウザのJavaScriptエンジン上でJavaScriptよりもはるかに高速に実行できます。JavaScriptとの相互運用も可能で、既存のウェブアプリに高性能な処理だけWebAssemblyで実装した部品を組み込むことができます。
WebAssemblyが活用される主な場面を挙げます。
- ブラウザ上での動画・画像編集ツール(例:Figmaの一部処理)
- ウェブブラウザ内でのゲームエンジン(Unityなど)の動作
- ブラウザ上で動くプログラミング言語のインタプリタやコンパイラ
- サーバーサイドやエッジ環境での軽量・安全なコード実行(WASIによる拡張)
近年はブラウザに限らず、サーバーサイドやエッジコンピューティング環境でも注目が高まっています。WASI(WebAssembly System Interface)という仕様を使うことで、OSの種類を問わずに同一のバイナリを安全に実行できるため、Dockerに代わるコンテナ技術の候補としても議論されています。
使い方・例文
ブラウザ上でPhotoshop風の画像編集を行うウェブアプリや、オンライン対戦ゲームのフィジックスエンジン処理など、重い計算をJavaScriptだけでは賄えない場面でWebAssemblyが採用されています。
この用語をシェア
最終更新: