wazero

package module
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 27, 2023 License: Apache-2.0 Imports: 14 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInstanceNotStart       = errors.New("instance has not started")
	ErrInstanceAlreadyStart   = errors.New("instance has already started")
	ErrOutOfMemory            = errors.New("out of memory")
	ErrUnableToReadMemory     = errors.New("unable to read memory")
	ErrFuncNotExported        = errors.New("function is not exported")
	ErrInvalidReturnAddress   = errors.New("invalid return address")
	ErrMallocFunctionNotFound = errors.New("could not find memory allocate function")
)

Functions

func NewVM

func NewVM(ctx context.Context, options ...VMOptions) api.WasmVM

Types

type Instance

type Instance struct {
	// contains filtered or unexported fields
}

func NewInstance

func NewInstance(ctx context.Context, vm *VM, module *Module, options ...InstanceOptions) *Instance

func (*Instance) Acquire

func (i *Instance) Acquire() bool

func (*Instance) GetByte

func (i *Instance) GetByte(addr uint64) (byte, error)

func (*Instance) GetData

func (i *Instance) GetData() interface{}

func (*Instance) GetExportsFunc

func (i *Instance) GetExportsFunc(funcName string) (pwapi.WasmFunction, error)

func (*Instance) GetExportsMem

func (i *Instance) GetExportsMem(memName string) ([]byte, error)

func (*Instance) GetMemory

func (i *Instance) GetMemory(addr uint64, size uint64) ([]byte, error)

func (*Instance) GetModule

func (i *Instance) GetModule() pwapi.WasmModule

func (*Instance) GetUint32

func (i *Instance) GetUint32(addr uint64) (uint32, error)

func (*Instance) GetWasmFunction

func (i *Instance) GetWasmFunction(f api.Function) pwapi.WasmFunction

func (*Instance) HandleError

func (i *Instance) HandleError(err error)

func (*Instance) Lock

func (i *Instance) Lock(data interface{})

func (*Instance) Malloc

func (i *Instance) Malloc(size int32) (uint64, error)

func (*Instance) PutByte

func (i *Instance) PutByte(addr uint64, b byte) error

func (*Instance) PutMemory

func (i *Instance) PutMemory(addr uint64, size uint64, content []byte) error

func (*Instance) PutUint32

func (i *Instance) PutUint32(addr uint64, value uint32) error

func (*Instance) Release

func (i *Instance) Release()

func (*Instance) SetData

func (i *Instance) SetData(data interface{})

func (*Instance) Start

func (i *Instance) Start() error

Start makes a new namespace which has the module dependencies of the guest.

func (*Instance) Stop

func (i *Instance) Stop()

func (*Instance) Unlock

func (i *Instance) Unlock()

type InstanceOptions

type InstanceOptions func(instance *Instance)

func InstanceWithLogger

func InstanceWithLogger(logger logr.Logger) InstanceOptions

func InstanceWithMallocFunctionNames

func InstanceWithMallocFunctionNames(names ...string) InstanceOptions

func InstanceWithStartFunctionNames

func InstanceWithStartFunctionNames(names ...string) InstanceOptions

type Module

type Module struct {
	// contains filtered or unexported fields
}

func NewModule

func NewModule(ctx context.Context, vm *VM, module wazero.CompiledModule, runtime wazero.Runtime, wasmBytes []byte, options ...ModuleOptions) *Module

func (*Module) Close added in v1.2.1

func (m *Module) Close(ctx context.Context) error

func (*Module) GetABINameList

func (m *Module) GetABINameList() []string

func (*Module) Init

func (m *Module) Init()

func (*Module) NewInstance

func (m *Module) NewInstance() (api.WasmInstance, error)

type ModuleOptions

type ModuleOptions func(module *Module)

func ModuleWithLogger

func ModuleWithLogger(logger logr.Logger) ModuleOptions

type VM

type VM struct {
	// contains filtered or unexported fields
}

func (*VM) Close

func (w *VM) Close() (err error)

Close implements io.Closer

func (*VM) Init

func (w *VM) Init()

func (*VM) Name

func (w *VM) Name() string

func (*VM) NewModule

func (w *VM) NewModule(wasmBytes []byte) (api.WasmModule, error)

type VMOptions

type VMOptions func(vm *VM)

func VMWithLogger

func VMWithLogger(logger logr.Logger) VMOptions

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL