Crate wasmtime_environ

Source
Expand description

Standalone environment for WebAssembly using Cranelift. Provides functions to translate get_global, set_global, memory.size, memory.grow, call_indirect that hardcode in the translation the base addresses of regions of memory that will hold the globals, tables and linear memories.

Re-exports§

pub use object;
pub use wasmparser;

Modules§

__core
The Rust Core Library
component
Support for the component model in Wasmtime.
drc
Layout of Wasm GC objects in the deferred reference-counting collector.
fact
Wasmtime’s Fused Adapter Compiler of Trampolines (FACT)
null
Layout of Wasm GC objects in the null garbage collector.
obj
Utilities for working with object files that operate as Wasmtime’s serialization and intermediate format for compiled modules.
packed_option
Compact representation of Option<T> for types with a reserved value.
prelude
Rust module prelude for Wasmtime crates.

Macros§

entity_impl
Macro which provides the common implementation of a 32-bit entity reference.
foreach_builtin_component_function
Helper macro, like foreach_transcoder, to iterate over builtins for components unrelated to transcoding.
foreach_builtin_function
Helper macro to iterate over all builtin functions and their signatures.
wasm_unsupported
Return an Err(WasmError::Unsupported(msg)) where msg the string built by calling format! on the arguments to this macro.

Structs§

AddressMapSection
Builder for the address map section of a wasmtime compilation image.
BoxedSlice
A slice mapping K -> V allocating dense entity references.
BuiltinFunctionIndex
An index type for builtin functions.
CompiledFunctionInfo
Secondary in-memory results of function compilation.
CompiledModuleInfo
Secondary in-memory results of module compilation.
ConfigTunables
Optional tunable configuration options used in wasmtime::Config
ConstExpr
A constant expression.
DataIndex
Index type of a passive data segment inside the WebAssembly module.
DebugInfoData
DefinedFuncIndex
Index type of a defined function inside the WebAssembly module.
DefinedGlobalIndex
Index type of a defined global inside the WebAssembly module.
DefinedMemoryIndex
Index type of a defined memory inside the WebAssembly module.
DefinedTableIndex
Index type of a defined table inside the WebAssembly module.
ElemIndex
Index type of a passive element segment inside the WebAssembly module.
EngineInternedRecGroupIndex
Index type of a canonicalized recursive type group inside the whole engine (as opposed to canonicalized within just a single Wasm module).
EntityList
A small list of entity references allocated from a pool.
EntitySet
A set of K for densely indexed entity references.
FilePos
A position within an original source file,
FuncIndex
Index type of a function (imported or defined) inside the WebAssembly module.
FuncRefIndex
Index into the funcref table within a VMContext for a function.
FunctionBodyData
Contains function data: byte code and its offset in the module.
FunctionLoc
Description of where a function is located in the text section of a compiled image.
FunctionMetadata
FunctionName
The name of a function stored in the ELF_NAME_DATA section.
FunctionType
Type information about functions in a wasm module.
GcArrayLayout
The layout of a GC-managed array.
GcStructLayout
The layout for a GC-managed struct type.
Global
A WebAssembly global.
GlobalIndex
Index type of a global variable (imported or defined) inside the WebAssembly module.
HostPtr
Type representing the size of a pointer for the current compilation host
InstructionAddressMap
Single source location to generated address mapping.
Iter
Iterate over all keys in order.
IterEntityRange
Iterator type returned by iter_entity_range.
IterMut
Iterate over all keys in order.
Keys
Iterate over all keys in order.
Limits
The size range of resizeable storage associated with Memory types and Table types.
ListPool
A memory pool for storing lists of T.
Memory
WebAssembly linear memory.
MemoryIndex
Index type of a linear memory (imported or defined) inside the WebAssembly module.
MemoryInitializer
A WebAssembly linear memory initializer.
Metadata
Metadata associated with a compiled ELF artifact.
Module
A translated WebAssembly module, excluding the function bodies and memory initializers.
ModuleEnvironment
Object containing the standalone environment information.
ModuleInternedRecGroupIndex
Index type of a canonicalized recursive type group inside a WebAssembly module (as opposed to canonicalized within the whole engine).
ModuleInternedTypeIndex
A canonicalized type index for a type within a single WebAssembly module.
ModuleTranslation
The result of translating via ModuleEnvironment. Function bodies are not yet translated, and data initializers have not yet been copied out of the original buffer.
ModuleTypes
All types used in a core wasm module.
ModuleTypesBuilder
A builder for ModuleTypes.
NameSection
ObjectBuilder
Helper structure to create an ELF file as a compilation artifact.
OwnedMemoryIndex
Index type of a defined memory inside the WebAssembly module.
PrimaryMap
A primary mapping K -> V allocating dense entity references.
RecGroupRelativeTypeIndex
A canonicalized type index referencing a type within a single recursion group from another type within that same recursion group.
ScopeVec
Small data structure to help extend the lifetime of a slice to a higher scope.
SecondaryMap
A mapping K -> V for densely indexed entity references.
Setting
Description of compiler settings returned by CompilerBuilder::settings.
SizeOverflow
SparseMap
A sparse mapping of entity references.
StackMap
A map for determining where live GC references live in a stack frame.
StackMapInformation
The offset within a function of a GC safepoint, and its associated stack map.
StaticMemoryInitializer
Similar to the above MemoryInitializer but only used when memory initializers are statically known to be valid.
StaticModuleIndex
Index into the global list of modules found within an entire component.
Table
WebAssembly table.
TableIndex
Index type of a table (imported or defined) inside the WebAssembly module.
TableInitialization
Table initialization data for all tables in the module.
TableSegment
A WebAssembly table initializer segment.
Tag
WebAssembly event.
TagIndex
Index type of an event inside the WebAssembly module.
TrapEncodingBuilder
A helper structure to build the custom-encoded section of a wasmtime compilation image which encodes trap information.
TrapInformation
Information about trap.
Tunables
Tunable parameters for WebAssembly compilation.
TypeIndex
Index type of a type (imported or defined) inside the WebAssembly module.
VMOffsets
This class computes offsets to fields within VMContext and other related structs that JIT code accesses directly.
VMOffsetsFields
Used to construct a VMOffsets
VMSharedTypeIndex
A canonicalized type index into an engine’s shared type registry.
WasmArrayType
A concrete array type.
WasmCompositeType
WasmFieldType
The type of a struct field or array element.
WasmFileInfo
WasmFuncType
WebAssembly function type – equivalent of wasmparser’s FuncType.
WasmFunctionInfo
Information about a function, such as trap information, address map, and stack maps.
WasmRecGroup
A recursive type group.
WasmRefType
WebAssembly reference type – equivalent of wasmparser’s RefType
WasmStructType
A concrete struct type.
WasmSubType
A concrete, user-defined (or host-defined) Wasm type.
WasmparserTypeConverter
A convert from wasmparser types to Wasmtime types.

Enums§

Collector
The garbage collector implementation to use.
CompileError
An error while compiling WebAssembly to machine code.
ConstOp
The subset of Wasm opcodes that are constant.
EngineOrModuleTypeIndex
An interned type index, either at the module or engine level.
EntityIndex
An index of an entity.
EntityType
A type of an item in a wasm module where an item is typically something that can be exported.
FlagValue
Value of a configured setting for a Compiler
GcLayout
The layout of a GC-managed object.
HostCall
Enumeration of all possible ways that wasm may execute code in the host.
IndexType
The type that can be used to index into Memory and Table.
Initializer
Initialization routines for creating an instance, encompassing imports, modules, instances, aliases, etc.
MemoryInitialization
The type of WebAssembly linear memory initialization to use for a module.
ObjectKind
Types of objects that can be created by Compiler::object
RelocationTarget
What relocations can be applied against.
SettingKind
Different kinds of Setting values that can be configured in a CompilerBuilder
TableInitialValue
Initial value for all elements in a table.
TableSegmentElements
Elements of a table segment, either a list of functions or list of arbitrary expressions.
Trap
TrapSentinel
Return value of BuiltinFunctionIndex::trap_sentinel.
VMGcKind
The kind of an object in a GC heap.
WasmCompositeInnerType
A function, array, or struct type.
WasmError
A WebAssembly translation error.
WasmHeapBottomType
A bottom heap type.
WasmHeapTopType
A top heap type.
WasmHeapType
WebAssembly heap type – equivalent of wasmparser’s HeapType
WasmStorageType
Represents storage types introduced in the GC spec for array and struct fields.
WasmValType
WebAssembly value type – equivalent of wasmparser::ValType.

Constants§

FUNCREF_INIT_BIT
An “initialized bit” in a funcref table.
FUNCREF_MASK
The mask we apply to all refs loaded from funcref tables.
I31_DISCRIMINANT
Discriminant to check whether GC reference is an i31ref or not.
NON_NULL_NON_I31_MASK
A mask that can be used to check for non-null and non-i31ref GC references with a single bitwise-and operation.
VERSION
Version number of this crate.
VMCONTEXT_MAGIC
Magic value for core Wasm VM contexts.
VM_ARRAY_CALL_HOST_FUNC_MAGIC
Equivalent of VMCONTEXT_MAGIC except for array-call host functions.
VM_GC_HEADER_ALIGN
The minimum alignment of the VMGcHeader in bytes.
VM_GC_HEADER_KIND_OFFSET
The offset of the VMGcKind field in the VMGcHeader.
VM_GC_HEADER_SIZE
The size of the VMGcHeader in bytes.
VM_GC_HEADER_TYPE_INDEX_OFFSET
The offset of the VMSharedTypeIndex field in the VMGcHeader.
WASM32_MAX_SIZE
Maximum size, in bytes, of 32-bit memories (4G)

Traits§

CacheStore
Implementation of an incremental compilation’s key/value cache store.
Compiler
An implementation of a compiler which can compile WebAssembly functions to machine code and perform other miscellaneous tasks needed by the JIT runtime.
CompilerBuilder
Abstract trait representing the ability to create a Compiler below.
EntityRef
A type wrapping a small integer index should implement EntityRef so it can be used as the key of an SecondaryMap or SparseMap.
FinishedObject
A type which can be the result of serializing an object.
GcTypeLayouts
A trait for getting the layout of a Wasm GC struct or array inside a particular collector.
InitMemory
The various callbacks provided here are used to drive the smaller bits of memory initialization.
PtrSize
Trait used for the ptr representation of the field of VMOffsets
Signed
Helper trait used to add signed() methods to primitive unsigned integer types.
SparseMapValue
Trait for extracting keys from values stored in a SparseMap.
TripleExt
Extension methods for target_lexicon::Triple.
TypeConvert
Helpers used to convert a wasmparser type to a type in this crate.
TypeTrace
A trait for things that can trace all type-to-type edges, aka all type indices within this thing.
Unsigned
Helper trait used to add unsigned() methods to primitive signed integer types.

Functions§

byte_size_of_wasm_ty_in_gc_heap
Get the byte size of the given Wasm type when it is stored inside the GC heap.
demangle_function_name
Demangles a single function name into a user-readable form.
demangle_function_name_or_index
Demangles a function name if it’s provided, or returns a unified representation based on the function index otherwise.
iter_entity_range
Iterate over a Range<E: EntityRef>, yielding a sequence of E items.
iterate_address_map
Iterate over the address map contained in the given address map section.
lookup_file_pos
Lookup an offset within an encoded address map section, returning the original FilePos that corresponds to the offset, if found.
lookup_trap_code
Decodes the provided trap information section and attempts to find the trap code corresponding to the offset specified.

Type Aliases§

Dwarf
SparseSet
A sparse set of entity references.
WasmResult
A convenient alias for a Result that uses WasmError as the error type.