WasiMemory
Defined in: packages/runtime/src/wasm/wasi-types.ts:464
Wraps a WasmLinearMemory (WebAssembly.Memory) and provides typed read/write helpers for the WASI ABI.
Remarks
Section titled “Remarks”Ownership / lifetime rule. The internal DataView and Uint8Array views
are cached over the memory’s ArrayBuffer on construction. memory.grow()
detaches the old buffer and allocates a new one — any cached view of the old
buffer becomes a zero-length stale reference. After any operation that may
grow memory, callers MUST invoke WasiMemory.refresh before the next
read/write. The WasiHost wraps every syscall with a memory refresh,
and the raw asyncify orchestrator refreshes after its constructor (which may
memory.grow() to allocate its unwind/rewind buffer).
Example
Section titled “Example”const mem = new WasiMemory(instance.exports.memory as WasmLinearMemory)mem.setU32(ptr, 42)const s = mem.readString(strPtr, strLen)Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new WasiMemory(
memory):WasiMemory
Defined in: packages/runtime/src/wasm/wasi-types.ts:470
Parameters
Section titled “Parameters”memory
Section titled “memory”Returns
Section titled “Returns”WasiMemory
Methods
Section titled “Methods”getU16()
Section titled “getU16()”getU16(
ptr):number
Defined in: packages/runtime/src/wasm/wasi-types.ts:496
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”number
getU32()
Section titled “getU32()”getU32(
ptr):number
Defined in: packages/runtime/src/wasm/wasi-types.ts:506
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”number
getU64()
Section titled “getU64()”getU64(
ptr):bigint
Defined in: packages/runtime/src/wasm/wasi-types.ts:516
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”bigint
getU8()
Section titled “getU8()”getU8(
ptr):number
Defined in: packages/runtime/src/wasm/wasi-types.ts:486
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”number
readBytes()
Section titled “readBytes()”readBytes(
ptr,len):Uint8Array
Defined in: packages/runtime/src/wasm/wasi-types.ts:556
Read len bytes from memory at ptr. Returns a copy.
Parameters
Section titled “Parameters”number
number
Returns
Section titled “Returns”Uint8Array
readIovecs()
Section titled “readIovecs()”readIovecs(
iovecPtr,iovecCount):WasiIovec[]
Defined in: packages/runtime/src/wasm/wasi-types.ts:577
Read an array of WASI iovec structs from memory. Each iovec is 8 bytes: u32 buf_ptr, u32 buf_len.
Parameters
Section titled “Parameters”iovecPtr
Section titled “iovecPtr”number
pointer to first iovec struct
iovecCount
Section titled “iovecCount”number
number of iovec structs
Returns
Section titled “Returns”WasiIovec[]
readString()
Section titled “readString()”readString(
ptr,len):string
Defined in: packages/runtime/src/wasm/wasi-types.ts:540
Read a UTF-8 string from memory at ptr with the given byte length.
Parameters
Section titled “Parameters”number
number
Returns
Section titled “Returns”string
refresh()
Section titled “refresh()”refresh(
memory):void
Defined in: packages/runtime/src/wasm/wasi-types.ts:479
Re-synchronize internal views after memory.grow(). Must be called before any read/write after a grow.
Parameters
Section titled “Parameters”memory
Section titled “memory”Returns
Section titled “Returns”void
setU16()
Section titled “setU16()”setU16(
ptr,value):void
Defined in: packages/runtime/src/wasm/wasi-types.ts:500
Parameters
Section titled “Parameters”number
number
Returns
Section titled “Returns”void
setU32()
Section titled “setU32()”setU32(
ptr,value):void
Defined in: packages/runtime/src/wasm/wasi-types.ts:510
Parameters
Section titled “Parameters”number
number
Returns
Section titled “Returns”void
setU64()
Section titled “setU64()”setU64(
ptr,value):void
Defined in: packages/runtime/src/wasm/wasi-types.ts:520
Parameters
Section titled “Parameters”number
bigint
Returns
Section titled “Returns”void
setU8()
Section titled “setU8()”setU8(
ptr,value):void
Defined in: packages/runtime/src/wasm/wasi-types.ts:490
Parameters
Section titled “Parameters”number
number
Returns
Section titled “Returns”void
slice()
Section titled “slice()”slice(
ptr,len):Uint8Array
Defined in: packages/runtime/src/wasm/wasi-types.ts:564
Get a subarray view (no copy) into the memory at ptr for len bytes. The caller must not use this view after a grow().
Parameters
Section titled “Parameters”number
number
Returns
Section titled “Returns”Uint8Array
writeBytes()
Section titled “writeBytes()”writeBytes(
ptr,data):void
Defined in: packages/runtime/src/wasm/wasi-types.ts:549
Write bytes into memory at ptr.
Parameters
Section titled “Parameters”number
Uint8Array
Returns
Section titled “Returns”void
writeString()
Section titled “writeString()”writeString(
ptr,str):number
Defined in: packages/runtime/src/wasm/wasi-types.ts:531
Write a UTF-8 encoded string into memory at ptr. Does NOT write a NUL terminator.
Parameters
Section titled “Parameters”number
string
Returns
Section titled “Returns”number
the number of bytes written