wasmtime

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 4, 2023 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrAddrOverflow         = errors.New("addr overflow")
	ErrInstanceNotStart     = errors.New("instance has not started")
	ErrInstanceAlreadyStart = errors.New("instance has already started")
	ErrInvalidParam         = errors.New("invalid param")
	ErrRegisterNotFunc      = errors.New("register a non-func object")
	ErrRegisterArgType      = errors.New("register func with invalid arg type")

	ErrPutUint32                   = errors.New("could not put uint32 to memory")
	ErrGetUint32                   = errors.New("could not get uint32 from memory")
	ErrPutByte                     = errors.New("could not put byte to memory")
	ErrGetByte                     = errors.New("could not get byte from memory")
	ErrPutData                     = errors.New("could not put data to memory")
	ErrGetData                     = errors.New("could not get data to memory")
	ErrGetExportsMemNotImplemented = errors.New("GetExportsMem not implemented")
	ErrMallocFunctionNotFound      = errors.New("could not find memory allocate function")
	ErrMalloc                      = errors.New("could not allocate memory")
)

Functions

func NewVM

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

Types

type Call

type Call struct {
	*wasmtime.Func
	// contains filtered or unexported fields
}

func (*Call) Call

func (c *Call) Call(args ...interface{}) (interface{}, error)

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) (api.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() api.WasmModule

func (*Instance) GetUint32

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

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) RegisterFunc

func (i *Instance) RegisterFunc(namespace string, funcName string, f interface{}) 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

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 *wasmtime.Module, wasmBytes []byte, options ...ModuleOptions) *Module

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