WebAssembly: Difference between revisions
[unchecked revision] | [unchecked revision] |
Content deleted Content added
mNo edit summary |
mNo edit summary |
||
Line 35:
* '''WASM''': a file which contains [https://www.w3.org/TR/wasm-core-1/#binary binary WebAssembly bytecode], also the name of the reference interpreter.
* '''WAT''': WebAssembly Text source
* '''WABT'': WebAssembly Binary Toolkit, equivalent of binutils. Includes assembler, objdump and other tools (see [https://github.com/WebAssembly/wabt WABT]).
* '''MVP''': Minimal Viable Product, which means the smallest WASM interpreter (nothing Web related required or included). Defined in [https://www.w3.org/TR/wasm-core/ WebAssembly Core Specification]
* '''WASI''': WebAssembly System Interface, this defines an ABI and a set of functions how the bytecode interacts with the OS and non-WASM libraries.
Line 46 ⟶ 47:
Linkage for JavaScript, C/C++, Rust, Python and many other languages are now available and well tested. For kernels, you'll be interested in the C or Rust linkage mostly. You can find and incomplete and growing [https://github.com/appcypher/awesome-wasm-langs list here].
== See Also ==
Line 68 ⟶ 70:
* [https://github.com/kanaka/wac wac, wax, wace] Interpreter in C, this provides MVP, WASI, EmScripten-compatibility; probably the easiest to embed in a kernel
* [https://github.com/soundandform/m3 m3/wasm] Interpreter in C, aims for high performance
* [https://github.com/WebAssembly/wabt/tree/master/src/interp wasm-interp] Interpreter in C++, part of WABT
==== Examples ====
* [https://github.com/ColinEberhardt/wasm-mandelbrot wasm-mandelbrot] example on how to use EmScripten, wasm-toolchain, clang + BinaryEm, etc.
|