WebAssembly
WebAssembly(以下WASM)はWebブラウザ上で実行可能なバイナリ仕様のことです。ただし最近は Webブラウザ以外でも動作するように検討されており、様々なプラットフォームで動作するバイナリ仕様という意味合いを持つことがあります。ネイティブコード(機械語)に近い実行速度で高速に動作するため、注目が集まっています。
詳細はこの記事をご覧ください。
WASMを動かすには現在以下のようなモデルが検討されています。このモデルはブラウザではなくOS上でWASMを動作させるケースにフォーカスしています。
まずはWASM自体とWASMを動作させるためのRuntimeがあり、WASIがOSを問わないファイルシステムやネットワークなどへのアクセス用のインターフェイス仕様となります。(ブラウザでWASMを利用する場合はブラウザ自体がファイルへのアクセス機能などを有しているためWASIが不要です)
WASMとWASIは Bytecode Alliance という団体によって標準化が進められています。またCloudCDNのFastly社は自社で開発したLucetというRuntimeをBytecode Allianceに寄贈しています。
WASM関連の単語
単語 | 内容 |
---|---|
Bytecode Alliance | WASMをブラウザ以外の環境でも動作させることを目指す団体。WASMとWASIの標準化を行う |
krustlet | kubelet + wasmの実行環境を有するマイクロソフトが開発したミドルウェア |
Luset | Fastly社が開発したWebAssemblyのコンパイラ兼ランタイムの一種 |
waSCC(WebAssembly Secure Capabilities Connector) | ランタイムの一種 |
Wasmtime | ランタイムの一種 |
WASI(Web Assembly System Interface) | WASMのインターフェース仕様 |
WebAssembly Hub | WASMを保存するリポジトリ。solo.ioが運営。 |
krustletはこの記事で紹介しています。