An experimental Wasm implementation written in Go.
- binary
- types Go structs translated from Wasm binary format (as simple and direct as possible)
- decoder Wasm binary format decoder
- encoder Wasm binary format encoder
- validator Wasm binary format validator
- interpreter Wasm interpreter
- text (WIP) WAT & WAST compiler powered by ANTLR
- aot (WIP) AOT (Wasm binary -> Go plugin) compiler
- jit (WIP) JIT compiler using LLVM
Interpreter mode:
$ git clone https://github.com/PrismAIO/wasm.go
$ cd wasm.go
$ go run github.com/PrismAIO/wasm.go/cmd/wasmgo hw.watAOT mode:
$ git clone https://github.com/PrismAIO/wasm.go
$ cd wasm.go
$ go run github.com/PrismAIO/wasm.go/cmd/wasmgo -aot hw.wat > hw.wasm.go
$ go build -buildmode=plugin -o hw.so hw.wasm.go
$ go run github.com/PrismAIO/wasm.go/cmd/wasmgo hw.so