Crate wasmtime_runtime
source · [−]Expand description
Runtime library support for Wasmtime.
Modules
Runtime library calls.
Structs
A WebAssembly stack trace.
A unique identifier (within an engine or similar) for a compiled module.
An allocator for compiled module IDs.
A default memory allocator used by Wasmtime
A function export value.
A global export value.
A memory export value.
A table export value.
Registeration for JIT image
Resolved import pointers.
Represents a request for a new runtime instance.
A handle holding an Instance
of a WebAssembly module.
Represents the limits placed on instances by the pooling instance allocator.
An link error while instantiating a module.
Representation of a runtime wasm linear memory.
One backing image for one memory.
A single slot handled by the copy-on-write memory initialization mechanism.
A simple struct consisting of a page-aligned pointer to page-aligned and initially-zeroed memory and a length.
A type akin to Vec<u8>
, but backed by mmap
and able to be split.
Backing images for memories in a module.
Represents the on-demand instance allocator.
Implements the pooling instance allocator.
For shared memory (and only for shared memory), this lock-version restricts
access when growing the memory or checking its size. This is to conform with
the thread proposal: “When IsSharedArrayBuffer(...)
is true, the return
value should be the result of an atomic read-modify-write of the new size to
the internal length
slot.”
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.
Opaque state used to help control TLS state across stack switches for async support.
Stores trace message with backtrace.
The VM caller-checked “anyfunc” record, for caller-side signature checking. It consists of the actual function pointer and a signature id to be checked by the caller.
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.
An external reference to some opaque data.
A table that over-approximizes the set of VMExternRef
s that any Wasm
activation on this thread is currently using.
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.
An imported function.
The storage for a WebAssembly global defined within the instance.
The fields compiled code needs to access to utilize a WebAssembly global variable imported from another instance.
The VM*Context
for host functions.
The storage for a WebAssembly invocation argument
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.
The fields compiled code needs to access to utilize a WebAssembly linear memory imported from another instance.
An “opaque” version of VMContext
which must be explicitly casted to a
target context.
Structure used to control interrupting wasm code.
An index into the shared signature registry, usable for checking signatures at indirect calls.
The fields compiled code needs to access to utilize a WebAssembly table defined within the instance.
The fields compiled code needs to access to utilize a WebAssembly table imported from another instance.
Enums
The value of an export passed from one instance to another.
An error while instantiating a module.
The allocation strategy to use for the pooling instance allocator.
Represents an instance’s table.
An element going into or coming out of a table.
Enumeration of different methods of raising a trap.
Constants
Version number of this crate.
Traits
Represents a runtime instance allocator.
Used by the runtime to query module information.
Used by the runtime to lookup information about a module given a program counter value.
Functionality required by this crate for a particular module. This is chiefly needed for lazy initialization of various bits of instance state.
A linear memory
A memory allocator
Dynamic runtime functionality needed by this crate throughout the execution of a wasm instance.
Functions
Allocate an instance containing a single memory.
Catches any wasm traps that happen within the execution of closure
,
returning them as a Result
.
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.
Returns the host OS page size, in bytes.
Given a Wasm function pointer and a vmctx
, prepare the vmctx
for calling
into that Wasm function, and return the host-to-Wasm entry trampoline.
Raises a trap from inside library code immediately.
Raises a user-defined trap immediately.
Carries a Rust panic across wasm code and resumes the panic on the other side.
Eagerly initialize thread-local runtime functionality. This will be performed lazily by the runtime if users do not perform it eagerly.
Type Definitions
Function which may handle custom signals while processing traps.
Type definition of the trampoline used to enter WebAssembly from the host.
Unions
A “raw” and unsafe representation of a WebAssembly value.