Crate wasmedge_sys

source ·
Expand description


The wasmedge-sys crate defines a group of low-level Rust APIs for WasmEdge, a light-weight, high-performance, and extensible WebAssembly runtime for cloud-native, edge, and decentralized applications.

For developers, it is strongly recommended that the APIs in wasmedge-sys are used to construct high-level libraries, while wasmedge-sdk is for building up business applications.

  • Notice that wasmedge-sys requires Rust v1.66 or above in the stable channel.


To use or build the wasmedge-sys crate, the WasmEdge library is required. Please refer to WasmEdge Installation and Uninstallation to install the WasmEdge library.

  • The following table provides the versioning information about each crate of WasmEdge Rust bindings.

    wasmedge-sdkWasmEdge libwasmedge-syswasmedge-typeswasmedge-macro

See also


Foreign function interfaces generated from WasmEdge C-API.
Defines WasmEdge CallingFrame.
Defines PluginManager and Plugin structs.
Defines the WebAssembly primitive types.
Defines the versioning and logging functions.


Represents a calling frame on top of stack.
Defines WasmEdge ahead-of-time(AOT) compiler and the relevant APIs.
Defines Config struct used to check/set the configuration options.
Defines an execution environment for both pure WASM and compiled WASM.
Defines the types of the exported wasm values.
Defines a reference to a host function.
Defines the type of a host function.
Defines a host function.
Defines a WebAssembly global variable, which stores a single value of the given type and a flag indicating whether it is mutable or not.
Defines the type of a wasm global variable.
An ImportModule represents a host module with a name. A host module consists of one or more host function, table, memory, and global instances, which are defined outside wasm modules and fed into wasm modules as imports.
Defines the types of the imported wasm value.
An Instance represents an instantiated module. In the instantiation process, An Instance is created from alModule. From an Instance the exported functions, tables, memories, and globals can be fetched.
Loader is used to load WASM modules from the given WASM files or buffers.
Defines the type of a wasm memory instance
Defines a WebAssembly memory instance, which is a linear memory described by its type. Each memory instance consists of a vector of bytes and an optional maximum size, and its size is a multiple of the WebAssembly page size (64KiB of each page).
Defines compiled in-memory representation of an input WASM binary.
Struct of WasmEdge Statistics.
A Store represents all global state that can be manipulated by WebAssembly programs. It consists of the runtime representation of all instances of functions, tables, memories, and globals.
A WasmEdge Table defines a WebAssembly table instance described by its type. A table is an array-like structure and stores function references.
A WasmEdge TableType classifies a Table instance over elements of element types within a size range.
Struct of WasmEdge Validator.
A WasiModule is a module instance for the WASI specification.
Defines a WebAssembly value.


Defines three types of module instances that can be imported into a WasmEdge Store instance.


The object to be registered via the the Executor::register_import_object function is required to implement this trait.
The object as an module instance is required to implement this trait.
The object that is used to perform a host function is required to implement this trait.

Type Definitions

Type alias for a boxed native function. This type is used in thread-safe cases.