Expand description
Runtime library support for Wasmtime.
Re-exports§
pub use crate::mpk::MpkEnabled;
Modules§
- libcalls
- Runtime library calls.
- mpk
- Memory Protection Keys (MPK) implementation for use in striped memory allocation.
Structs§
- Async
Wasm Call State - Opaque state used to persist the state of the
CallThreadState
activations associated with a fiber stack that’s used as part of an async wasm call. - Backtrace
- A WebAssembly stack trace.
- Call
Thread State - Temporary state stored on the stack which is registered in the
tls
module below for calls into wasm. - Compiled
Module Id - A unique identifier (within an engine or similar) for a compiled module.
- Compiled
Module IdAllocator - An allocator for compiled module IDs.
- Default
Memory Creator - A default memory allocator used by Wasmtime
- Export
Function - A function export value.
- Export
Global - A global export value.
- Export
Memory - A memory export value.
- Export
Table - A table export value.
- Extern
RefHost Data Id - ID into the
externref
host data table. - Extern
RefHost Data Table - Side table for each
externref
’s host data value. - Frame
- A stack frame within a Wasm stack trace.
- GcHeap
Allocation Index - The index of a table allocation within an
InstanceAllocator
. - GcRoot
- A GC root.
- GcRoots
Iter - An iterator over all the roots in a
GcRootsList
. - GcRoots
List - A list of GC roots.
- GcStore
- GC-related data that is one-to-one with a
wasmtime::Store
. - I31
- A 31-bit integer for use with
i31ref
. - Imports
- Resolved import pointers.
- Instance
- A type that roughly corresponds to a WebAssembly instance, but is also used for host-defined objects.
- Instance
Allocation Request - Represents a request for a new runtime instance.
- Instance
Handle - A handle holding an
Instance
of a WebAssembly module. - Memory
- Representation of a runtime wasm linear memory.
- Memory
Allocation Index - The index of a memory allocation within an
InstanceAllocator
. - Memory
Image - One backing image for one memory.
- Memory
Image Slot - Slot management of a copy-on-write image which can be reused for the pooling allocator.
- Mmap
- A simple struct consisting of a page-aligned pointer to page-aligned and initially-zeroed memory and a length.
- MmapVec
- A type akin to
Vec<u8>
, but backed bymmap
and able to be split. - Module
Memory Images - Backing images for memories in a module.
- OnDemand
Instance Allocator - Represents the on-demand instance allocator.
- Previous
Async Wasm Call State - Opaque state used to help control TLS state across stack switches for async support.
- Send
Sync Ptr - A helper type in Wasmtime to store a raw pointer to
T
while automatically inferring theSend
andSync
traits for the container based on the properties ofT
. - Store
Box - A
Box<T>
lookalike for memory that’s stored in aStore<T>
- Store
Ptr - A pointer to a Store. This Option<*mut dyn Store> is wrapped in a struct so that the function to create a &mut dyn Store is a method on a member of InstanceAllocationRequest, rather than on a &mut InstanceAllocationRequest itself, because several use-sites require a split mut borrow on the InstanceAllocationRequest.
- Table
Allocation Index - The index of a table allocation within an
InstanceAllocator
. - Trap
- Stores trace message with backtrace.
- Typed
GcRef - A GC reference to a heap object of concrete type
T
. - Unwind
Registration - Represents a registration of function unwind information for System V ABI.
- VMArray
Call Host Func Context - The
VM*Context
for array-call host functions. - VMContext
- The VM “context”, which is pointed to by the
vmctx
arg in Cranelift. This has information about globals, memories, tables, and other runtime state associated with the current instance. - VMFunc
Ref - The VM caller-checked “funcref” record, for caller-side signature checking.
- VMFunction
Body - A placeholder byte-sized type which is just used to provide some amount of type safety when dealing with pointers to JIT-compiled function bodies. Note that it’s deliberately not Copy, as we shouldn’t be carelessly copying function body bytes around.
- VMFunction
Import - An imported function.
- VMGc
Header - The common header for all objects allocated in a GC heap.
- VMGcRef
- A raw, unrooted GC reference.
- VMGlobal
Definition - The storage for a WebAssembly global defined within the instance.
- VMGlobal
Import - The fields compiled code needs to access to utilize a WebAssembly global variable imported from another instance.
- VMInvoke
Argument - The storage for a WebAssembly invocation argument
- VMMemory
Definition - The fields compiled code needs to access to utilize a WebAssembly linear memory defined within the instance, namely the start address and the size in bytes.
- VMMemory
Import - The fields compiled code needs to access to utilize a WebAssembly linear memory imported from another instance.
- VMNative
Call Function - A function pointer that exposes the native calling convention.
- VMNative
Call Host Func Context - The
VM*Context
for native-call host functions. - VMOpaque
Context - An “opaque” version of
VMContext
which must be explicitly casted to a target context. - VMRuntime
Limits - Structure used to control interrupting wasm code.
- VMShared
Type Index - An index into the shared type registry, usable for checking signatures at indirect calls.
- VMTable
Definition - The fields compiled code needs to access to utilize a WebAssembly table defined within the instance.
- VMTable
Import - The fields compiled code needs to access to utilize a WebAssembly table imported from another instance.
- VMWasm
Call Function - A function pointer that exposes the Wasm calling convention.
- Wasm
Fault - Description about a fault that occurred in WebAssembly.
- Yield
- A small future that yields once and then returns.
Enums§
- Core
Dump Stack - A WebAssembly Coredump
- Export
- The value of an export passed from one instance to another.
- GcProgress
- The result of doing an incremental amount of GC.
- Shared
Memory - Table
- Represents an instance’s table.
- Table
Element - An element going into or coming out of a table.
- Trap
Reason - Enumeration of different methods of raising a trap.
- VMExtern
Ref - Wait
Result - Result of
Memory::atomic_wait32
andMemory::atomic_wait64
Constants§
- VERSION
- Version number of this crate.
Traits§
- Garbage
Collection - A garbage collection process.
- GcHeap
- A heap that manages garbage-collected objects.
- GcHeap
Object - A trait implemented by all objects allocated inside a GC heap.
- GcRuntime
- Trait for integrating a garbage collector with the runtime.
- Instance
Allocator - A thing that can allocate instances.
- Instance
Allocator Impl - Trait that represents the hooks needed to implement an instance allocator.
- Module
Info - Used by the runtime to query module information.
- Module
Info Lookup - Used by the runtime to lookup information about a module given a program counter value.
- Module
Runtime Info - Functionality required by this crate for a particular module. This is chiefly needed for lazy initialization of various bits of instance state.
- Runtime
Linear Memory - A linear memory
- Runtime
Memory Creator - A memory allocator
- Store
- Dynamic runtime functionality needed by this crate throughout the execution of a wasm instance.
Functions§
- catch_
traps ⚠ - Catches any wasm traps that happen within the execution of
closure
, returning them as aResult
. - catch_
unwind_ ⚠and_ longjmp - Invokes the closure
f
and returns the result. - default_
gc_ runtime - disabled_
gc_ heap - Get a no-op GC heap for when GC is disabled (either statically at compile
time or dynamically due to it being turned off in the
wasmtime::Config
). - get_
stack_ pointer - init_
traps - This function is required to be called before any WebAssembly is entered. This will configure global state such as signal handlers to prepare the process to receive wasm traps.
- page_
size - Returns the host OS page size, in bytes.
- raise_
lib_ ⚠trap - Raises a trap from inside library code immediately.
- raise_
trap ⚠ - Raises a trap immediately.
- raise_
user_ ⚠trap - Raises a user-defined trap immediately.
- tls_
eager_ initialize - Eagerly initialize thread-local runtime functionality. This will be performed lazily by the runtime if users do not perform it eagerly.
Type Aliases§
- Signal
Handler - Function which may handle custom signals while processing traps.
- V128Abi
- x86 vectors are represented with XMM registers which are represented
with the
__m128i
type. This type is considered a vector type for ABI purposes which is implemented by Cranelift. - VMArray
Call Function - A function pointer that exposes the array calling convention.
Unions§
- ValRaw
- A “raw” and unsafe representation of a WebAssembly value.