WebAssembly(Wasm)
ブラウザ上でネイティブに近い速度で実行できるバイナリ命令形式。C・C++・Rustなどのコードをブラウザで動かすことができ、ゲーム・動画編集・CADなど計算負荷の高いWebアプリに使われる。
WebAssembly(Wasm)とは?
WebAssembly(Wasm)は、ブラウザ上で実行できるバイナリ命令形式です。JavaScriptの代替ではなく補完として設計されており、JavaScript単体では難しい計算負荷の高い処理をネイティブに近い速度で実行できます。2019年にW3Cの標準となりました。
JavaScriptとの違い
| 項目 | JavaScript | WebAssembly |
|---|---|---|
| 形式 | テキスト | バイナリ |
| 実行速度 | 速い | より速い(最大10〜20倍) |
| 言語 | JavaScript/TypeScript | C・C++・Rust・Go等からコンパイル |
| DOM操作 | ✅ | ❌(JSを経由する必要がある) |
| デバッグ | 容易 | やや難しい |
主なユースケース
- ゲームエンジン: Unity・Unreal EngineのWebGL出力
- 動画・画像処理: FFmpegをブラウザで実行(ffmpeg.wasm)
- CAD・3Dモデリング: AutoCAD Webなど
- 暗号処理: 高速な暗号計算
- 言語ランタイム: Python・Ruby等をブラウザで実行(Pyodide等)
開発フロー(Rustの例)
# Rustコードをwasmにコンパイル
wasm-pack build --target web
# JavaScriptから呼び出し
import init, { add } from './my_wasm.js';
await init();
console.log(add(1, 2)); // 3
まとめ
WebAssemblyはブラウザの可能性を大きく広げる技術です。通常のWebアプリ開発で直接使う機会は多くありませんが、パフォーマンスクリティカルなケースでは強力な選択肢です。
関連する用語 (プログラミング)
全33件を見るSSG(静的サイトジェネレーター)
ビルド時にすべてのページをHTMLとして事前生成する手法。サーバーが不要なため高速・安全・低コストで、ブログ・ドキュメントサイト・ランディングページに最適。
IT用語: デザインパターンとは|GoFの23パターンと代表例
ソフトウェア設計でよく直面する問題への定番解決策「デザインパターン」の概念とシングルトン・ファクトリー等の代表パターンを解説。
ヘッドレスCMS
表示用フロントエンド(ヘッド)を持たず、コンテンツ管理とAPIによるデータ提供に特化したCMS。Next.js・Astro等の任意のフロントエンドと組み合わせてJAMstack構成を実現する。
ESLint
JavaScriptとTypeScriptのコードを静的解析し、潜在的なバグや規約違反を検出するリンター。プロジェクト全体で一貫したコードスタイルを強制し、コードレビューの負担を軽減する。
モノレポ(Monorepo)
複数のプロジェクトやパッケージを1つのGitリポジトリで管理する手法。コードの共有・一貫したCI/CD・依存関係の統一が容易になる。Turborepo・Nx・Yarnワークスペースで実装される。
C# (シーシャープ)
Microsoft社が開発した、エンタープライズ(企業向け)システムからゲーム開発(Unity)まで広く使われる万能言語。