Documentation
¶
Index ¶
- Constants
- Variables
- func NewHostModule(extensions ...Extension) wazergo.HostModule[*Module]
- type Decorator
- type Extension
- type Function
- type Module
- func (m *Module) ArgsGet(ctx context.Context, argv Pointer[Uint32], buf Pointer[Uint8]) Errno
- func (m *Module) ArgsSizesGet(ctx context.Context, argc, bufLen Pointer[Int32]) Errno
- func (m *Module) ClockResGet(ctx context.Context, clockID Int32, precision Pointer[Uint64]) Errno
- func (m *Module) ClockTimeGet(ctx context.Context, clockID Int32, precision Uint64, ...) Errno
- func (m *Module) Close(ctx context.Context) error
- func (m *Module) EnvironGet(ctx context.Context, envv Pointer[Uint32], buf Pointer[Uint8]) Errno
- func (m *Module) EnvironSizesGet(ctx context.Context, envc, bufLen Pointer[Int32]) Errno
- func (m *Module) FDAdvise(ctx context.Context, fd Int32, offset, length Uint64, advice Int32) Errno
- func (m *Module) FDAllocate(ctx context.Context, fd Int32, offset, length Uint64) Errno
- func (m *Module) FDClose(ctx context.Context, fd Int32) Errno
- func (m *Module) FDDataSync(ctx context.Context, fd Int32) Errno
- func (m *Module) FDFileStatGet(ctx context.Context, fd Int32, stat Pointer[wasi.FileStat]) Errno
- func (m *Module) FDFileStatSetSize(ctx context.Context, fd Int32, size Uint64) Errno
- func (m *Module) FDFileStatSetTimes(ctx context.Context, fd Int32, accessTime, modifyTime Uint64, flags Int32) Errno
- func (m *Module) FDPreStatDirName(ctx context.Context, fd Int32, dirName Bytes) Errno
- func (m *Module) FDPreStatGet(ctx context.Context, fd Int32, prestat Pointer[wasi.PreStat]) Errno
- func (m *Module) FDPread(ctx context.Context, fd Int32, iovecs List[wasi.IOVec], offset Uint64, ...) Errno
- func (m *Module) FDPwrite(ctx context.Context, fd Int32, iovecs List[wasi.IOVec], offset Uint64, ...) Errno
- func (m *Module) FDRead(ctx context.Context, fd Int32, iovecs List[wasi.IOVec], nread Pointer[Int32]) Errno
- func (m *Module) FDReadDir(ctx context.Context, fd Int32, buf Bytes, cookie Uint64, ...) Errno
- func (m *Module) FDRenumber(ctx context.Context, from, to Int32) Errno
- func (m *Module) FDSeek(ctx context.Context, fd Int32, delta Int64, whence Int32, size Pointer[Uint64]) Errno
- func (m *Module) FDStatGet(ctx context.Context, fd Int32, stat Pointer[wasi.FDStat]) Errno
- func (m *Module) FDStatSetFlags(ctx context.Context, fd Int32, flags Uint32) Errno
- func (m *Module) FDStatSetRights(ctx context.Context, fd Int32, rightsBase, rightsInheriting Uint64) Errno
- func (m *Module) FDSync(ctx context.Context, fd Int32) Errno
- func (m *Module) FDTell(ctx context.Context, fd Int32, size Pointer[Uint64]) Errno
- func (m *Module) FDWrite(ctx context.Context, fd Int32, iovecs List[wasi.IOVec], ...) Errno
- func (m *Module) PathCreateDirectory(ctx context.Context, fd Int32, path String) Errno
- func (m *Module) PathFileStatGet(ctx context.Context, fd Int32, flags Int32, path String, ...) Errno
- func (m *Module) PathFileStatSetTimes(ctx context.Context, fd Int32, lookupFlags Int32, path String, ...) Errno
- func (m *Module) PathLink(ctx context.Context, oldFD Int32, oldFlags Int32, oldPath Bytes, newFD Int32, ...) Errno
- func (m *Module) PathOpen(ctx context.Context, fd Int32, dirFlags Int32, path String, openFlags Int32, ...) Errno
- func (m *Module) PathReadLink(ctx context.Context, fd Int32, path String, buf Bytes, nwritten Pointer[Int32]) Errno
- func (m *Module) PathRemoveDirectory(ctx context.Context, fd Int32, path String) Errno
- func (m *Module) PathRename(ctx context.Context, oldFD Int32, oldPath String, newFD Int32, newPath String) Errno
- func (m *Module) PathSymlink(ctx context.Context, oldPath String, fd Int32, newPath String) Errno
- func (m *Module) PathUnlinkFile(ctx context.Context, fd Int32, path String) Errno
- func (m *Module) PollOneOff(ctx context.Context, in Pointer[wasi.Subscription], out Pointer[wasi.Event], ...) Errno
- func (m *Module) ProcExit(ctx context.Context, mod api.Module, exitCode Int32)
- func (m *Module) ProcRaise(ctx context.Context, signal Int32) Errno
- func (m *Module) RandomGet(ctx context.Context, buf Bytes) Errno
- func (m *Module) SchedYield(ctx context.Context) Errno
- func (m *Module) SockAccept(ctx context.Context, fd Int32, flags Int32, connfd Pointer[Int32]) Errno
- func (m *Module) SockRecv(ctx context.Context, fd Int32, iovecs List[wasi.IOVec], iflags Int32, ...) Errno
- func (m *Module) SockSend(ctx context.Context, fd Int32, iovecs List[wasi.IOVec], flags Int32, ...) Errno
- func (m *Module) SockShutdown(ctx context.Context, fd Int32, flags Int32) Errno
- func (m *Module) WasmEdgeSockAddrInfo(ctx context.Context, name String, service String, ...) Errno
- func (m *Module) WasmEdgeSockBind(ctx context.Context, fd Int32, addr Pointer[wasmEdgeAddress], port Uint32) Errno
- func (m *Module) WasmEdgeSockConnect(ctx context.Context, fd Int32, addr Pointer[wasmEdgeAddress], port Uint32) Errno
- func (m *Module) WasmEdgeSockGetOpt(ctx context.Context, fd Int32, level Int32, option Int32, value Pointer[Int32], ...) Errno
- func (m *Module) WasmEdgeSockListen(ctx context.Context, fd Int32, backlog Int32) Errno
- func (m *Module) WasmEdgeSockOpen(ctx context.Context, family Int32, sockType Int32, openfd Pointer[Int32]) Errno
- func (m *Module) WasmEdgeSockSendTo(ctx context.Context, fd Int32, iovecs List[wasi.IOVec], ...) Errno
- func (m *Module) WasmEdgeSockSetOpt(ctx context.Context, fd Int32, level Int32, option Int32, value Pointer[Int32], ...) Errno
- func (m *Module) WasmEdgeV1SockAccept(ctx context.Context, fd Int32, connfd Pointer[Int32]) Errno
- func (m *Module) WasmEdgeV1SockLocalAddr(ctx context.Context, fd Int32, addr Pointer[wasmEdgeAddress], ...) Errno
- func (m *Module) WasmEdgeV1SockPeerAddr(ctx context.Context, fd Int32, addr Pointer[wasmEdgeAddress], ...) Errno
- func (m *Module) WasmEdgeV1SockRecvFrom(ctx context.Context, fd Int32, iovecs List[wasi.IOVec], ...) Errno
- func (m *Module) WasmEdgeV2SockLocalAddr(ctx context.Context, fd Int32, addr Pointer[wasmEdgeAddress], ...) Errno
- func (m *Module) WasmEdgeV2SockPeerAddr(ctx context.Context, fd Int32, addr Pointer[wasmEdgeAddress], ...) Errno
- func (m *Module) WasmEdgeV2SockRecvFrom(ctx context.Context, fd Int32, iovecs List[wasi.IOVec], ...) Errno
- type Option
Constants ¶
const HostModuleName = "wasi_snapshot_preview1"
HostModuleName is the name of the host module.
Variables ¶
var WasmEdgeV1 = Extension{ "sock_accept": wazergo.F2((*Module).WasmEdgeV1SockAccept), "sock_open": wazergo.F3((*Module).WasmEdgeSockOpen), "sock_bind": wazergo.F3((*Module).WasmEdgeSockBind), "sock_connect": wazergo.F3((*Module).WasmEdgeSockConnect), "sock_listen": wazergo.F2((*Module).WasmEdgeSockListen), "sock_send_to": wazergo.F6((*Module).WasmEdgeSockSendTo), "sock_recv_from": wazergo.F6((*Module).WasmEdgeV1SockRecvFrom), "sock_getsockopt": wazergo.F5((*Module).WasmEdgeSockGetOpt), "sock_setsockopt": wazergo.F5((*Module).WasmEdgeSockSetOpt), "sock_getlocaladdr": wazergo.F4((*Module).WasmEdgeV1SockLocalAddr), "sock_getpeeraddr": wazergo.F4((*Module).WasmEdgeV1SockPeerAddr), "sock_getaddrinfo": wazergo.F6((*Module).WasmEdgeSockAddrInfo), }
WasmEdgeV1 is the original WasmEdge sockets extension to WASI preview 1.
var WasmEdgeV2 = Extension{ "sock_open": wazergo.F3((*Module).WasmEdgeSockOpen), "sock_bind": wazergo.F3((*Module).WasmEdgeSockBind), "sock_connect": wazergo.F3((*Module).WasmEdgeSockConnect), "sock_listen": wazergo.F2((*Module).WasmEdgeSockListen), "sock_send_to": wazergo.F6((*Module).WasmEdgeSockSendTo), "sock_recv_from": wazergo.F7((*Module).WasmEdgeV2SockRecvFrom), "sock_getsockopt": wazergo.F5((*Module).WasmEdgeSockGetOpt), "sock_setsockopt": wazergo.F5((*Module).WasmEdgeSockSetOpt), "sock_getlocaladdr": wazergo.F3((*Module).WasmEdgeV2SockLocalAddr), "sock_getpeeraddr": wazergo.F3((*Module).WasmEdgeV2SockPeerAddr), "sock_getaddrinfo": wazergo.F6((*Module).WasmEdgeSockAddrInfo), }
WasmEdgeV2 is V2 of the WasmEdge sockets extension to WASI preview 1.
Version 2 has a sock_accept function that's compatible with the WASI preview 1 specification. It widens addresses so that additional address families could be supported in future (e.g. AF_UNIX).
Functions ¶
func NewHostModule ¶
func NewHostModule(extensions ...Extension) wazergo.HostModule[*Module]
NewHostModule constructs a wazero host module for WASI.
The host module manages the interaction between the host and the guest WASM module. The host module does not implement WASI on its own, and instead calls out to an implementation of the wasi.System interface provided via the WithWASI host module Option. This design means that the implementation doesn't have to concern itself with ABI details nor access the guest's memory.
Types ¶
type Module ¶
type Module struct { WASI wasi.System // contains filtered or unexported fields }