ref: f12cae5a08bf674fa1daa8e2d509c3e0eba2e1db
dir: /ricket.go/
package main
import (
"context"
"crypto/rand"
_ "embed"
"log"
"os"
"github.com/tetratelabs/wazero"
"github.com/tetratelabs/wazero/imports/wasi_snapshot_preview1"
)
//go:embed test.wasm
var guestWasm []byte
func main() {
ctx := context.Background()
// Instantiate runtime
r := wazero.NewRuntimeWithConfig(ctx, wazero.NewRuntimeConfigInterpreter())
defer r.Close(ctx)
wasi_snapshot_preview1.MustInstantiate(ctx, r)
// Run program
conf := wazero.NewModuleConfig().
WithStdout(os.Stdout).
WithStderr(os.Stderr).
WithStdin(os.Stdin).
WithSysNanosleep().
WithSysNanotime().
WithSysWalltime().
WithFSConfig(wazero.NewFSConfig()).
WithRandSource(rand.Reader)
_, err := r.InstantiateWithConfig(ctx, guestWasm, conf)
if err != nil {
log.Panicf("failed to instantiate WASM program: %v", err)
}
}