wagon
is a WebAssembly-based interpreter in Go, for Go.
NOTE: wagon
requires Go >= 1.9.x
.
wagon
aims to provide tools (executables+libraries) to:
- decode
wasm
binary files - load and execute
wasm
modules' bytecode.
wagon
doesn't concern itself with the production of the wasm
binary files;
these files should be produced with another tool (such as wabt or binaryen.)
wagon
may provide a utility to produce wasm
files from wast
or wat
files (and vice versa.)
The primary goal of wagon
is to provide the building blocks to be able to build an interpreter for Go code, that could be embedded in Jupyter or any Go program.
Based on the original go-interpreter version, the following features have been added.
- Add instruction gas support, it is still a basic version can barely run.
- Add lazy compiling and cache of compiled code which speed up big wasm code like go.
See the CONTRIBUTING guide for pointers on how to contribute to go-interpreter
and wagon
.