【ウェブアセンブリランタイム】

WebAssemblyランタイム とは?

💡 どこでも動く万能プレーヤー、Wasmの実行エンジン!
📌 このページのポイント
WebAssemblyランタイムの仕組み Rust C / C++ Go 各種言語 Wasm バイトコード Wasmランタイム サンドボックス実行 WASI(システムAPI) メモリ管理 実行環境 ブラウザ サーバー エッジ
WebAssemblyランタイムのイメージ
ひよこ ひよこ

WebAssemblyランタイムって何なの?

ペンギン先生 ペンギン先生

WebAssemblyのコードを実行するためのエンジンだよ。ブラウザにも内蔵されているし、ブラウザの外で動く専用のランタイムもあるんだ。

ひよこ ひよこ

ブラウザの外で動かす意味ってあるの?

ペンギン先生 ペンギン先生

あるよ!サーバーサイドやエッジコンピューティングWasmを使うと、コンテナより軽量で起動が速いんだ。代表的なランタイムにはWasmtime、Wasmer、WasmEdgeなどがあるよ。

ひよこ ひよこ

コンテナと比べてどこがいいの?

ペンギン先生 ペンギン先生

Wasmランタイムサンドボックスで安全に隔離されるし、起動がミリ秒単位で超高速なんだ。サイズも小さいからエッジ環境にぴったりだよ。

ひよこ ひよこ

どんな言語で書いたプログラムが動かせるの?

ペンギン先生 ペンギン先生

Rust、C、C++、Go、AssemblyScriptなど、Wasmコンパイルできる言語ならなんでもOKだよ。言語に依存しないのがWasmの大きな強みだね。

ひよこ ひよこ

将来的にはもっと広がっていくの?

ペンギン先生 ペンギン先生

WASIWebAssembly System Interface)という標準APIが整備されて、ファイルやネットワークへのアクセスも安全にできるようになってきているよ。「Dockerが発明された時にWasmがあれば、Dockerは不要だった」というDocker創業者の言葉もあるくらい注目されているんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
WebAssemblyランタイム」って出てきたら「Wasmを動かすための実行環境」と思えればだいたいOK!
📖 おまけ:英語の意味
「WebAssembly Runtime」 = WebAssembly実行環境
💬 Runtimeは「実行時」という意味で、Wasmコードを実際に動かすエンジンのことを指すよ
← 用語集にもどる