WebAssemblyとは

WebAssembly(WASM)は、ブラウザ上でほぼネイティブに近い速度でコードを実行できるバイナリ形式の命令セットです。C/C++・Rust・Goなどの言語をコンパイルしてブラウザで動かすことができます。

JavaScriptとWASMの比較

項目 JavaScript WebAssembly
実行速度 インタープリタ実行 ほぼネイティブ速度
型安全 動的型付け 静的型付け
言語 JavaScriptのみ C/C++/Rust/Go等
ファイルサイズ テキスト形式(大きい) バイナリ(小さい)
デバッグ 容易 ツールが必要

WASMの代表的なユースケース

高性能計算が必要な場面: - 画像・動画編集アプリ(FFmpeg.wasmなど) - 3Dゲーム・物理シミュレーション(Unity WebGL) - 暗号・圧縮処理

既存ネイティブコードの移植:C/C++で書かれた大量の既存コードをWebに移植するコストを大幅に削減できます。

RustでWASMを試す基本手順

# wasm-packのインストール
cargo install wasm-pack

# プロジェクト作成
wasm-pack new hello-wasm

# ビルド
wasm-pack build --target web

WASMの現在と未来

WASMはブラウザの外(サーバーサイド・エッジ)でも動作する「WASI(WebAssembly System Interface)」として進化しています。コンテナに代わる軽量ランタイムとして注目されており、Cloudflare Workers・Fastlyなどのエッジ環境で採用が進んでいます。