ruby.wasmのソースコードを読んでいるとWebAssemblyに関する用語が出てきます。用語を間違って読みとるとソースコードも間違って読んでしまいます。ソースコードを読むのに無駄に時間がかかります。そういうわけで、ソースコードを読みながら調べた用語をここにまとめておきます。
キーワード | 説明 | 追加情報 |
---|---|---|
WebAssembly | Webブラウザで実行できるバイナリコードの仕様 | |
wasm | WebAssemblyの略称。Webのwとアセンブリのasmをくっつけたもの。「わずむ」と発音します。 | |
BytecodeAlliance | Moziilaが中心になって立ち上げたWebAssemblyの仕様を決める団体。Fastly、Intel、Red Hatも参加しています。 | 詳細 |
WASI | WebAssembly System Interfaceというインターフェース仕様。「わじ」と読みます。WebAssemblyからホストの機能を呼び出すときのインターフェース。BytecodeAllianceで決めています。 | 詳細 |
wasmtime | WebAssemblyをWebブラウザ以外で実行するランタイム。BytecodeAllianceが作っています。 | 詳細 |
wasmer | WebAssemblyをWebブラウザ以外で実行するランタイムとそれを作っている会社 | 詳細 |
WASIX | wasmerが提唱するWASIの拡張。スレッドとかソケットを使えるようにしたいみたい。BytecodeAllianceとは独立した動きです。 | 詳細 |
Emscripten | WebAssemblyが考えられるずっと前から、C/C++のソースコードをWebブラウザで実行しようとするプロジェクトとそのためのコンパイラ。WebAssemblyが生み出されるきっかけになりました。いまはWebAssemblyを生成するコンパイラの一つです。 | 詳細 |
WIT | Wasm Interface Type の略。WebAssemblyとホストの間のインタフェースを定義するためのIDL | 詳細 |
wit-bindgen | WITからバインディング(ホストとゲストのメソッドを呼び出すコード)を生成します。bytecodeallianceが作っています。 | 詳細 |
ABI | Application Binary Interface の略。バイナリ間でお互いに呼び出せるためのインターフェース。WebAssemblyに関わらずあるプログラミング言語から他のプログラミング言語を呼ぶときに使う用語です。同一のプログラミング言語内でAPIというところをプログラミング言語を跨ぐとABIという感じです。 |