フラミナル

考え方や調べたことを書き殴ります。IT技術系記事多め

WebAssembly(WASM)の用語を整理します

f:id:lirlia:20200424071837p:plain

WebAssembly

WebAssembly(以下WASM)はWebブラウザ上で実行可能なバイナリ仕様のことです。ただし最近は Webブラウザ以外でも動作するように検討されており、様々なプラットフォームで動作するバイナリ仕様という意味合いを持つことがあります。ネイティブコード(機械語)に近い実行速度で高速に動作するため、注目が集まっています。

詳細はこの記事をご覧ください。


WASMを動かすには現在以下のようなモデルが検討されています。このモデルはブラウザではなくOS上でWASMを動作させるケースにフォーカスしています。

f:id:lirlia:20200424070416p:plain

まずは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はこの記事で紹介しています。

blog.framinal.life

参考