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 formaTformat, is a [https://www.w3.org/TR/wasm-core-1/#text plain text representation] of the bytecode (see [https://github.com/WebAssembly/binaryen Binaryen] wasm-at tool).
* '''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.