Skip to main content

WasmEdge Rust SDK


WasmEdge Rust SDK consists of five crates:

  • wasmedge-sdk crate defines a group of safe, ergonomic high-level APIs developers use to build up their own business applications.

  • wasmedge-sys crate is a wrapper of WasmEdge C-API and provides safe counterparts. It is not recommended to use it directly by application developers. wasmedge-sys, wasmedge-types, and wasmedge-macro constitute the low-level layer of WasmEdge Rust SDK.

  • wasmedge-types crate defines the data structures commonly used in wasmedge-sdk and wasmedge-sys.

  • wasmedge-macro crate defines the macros that are commonly used in wasmedge-sdk and wasmedge-sys to declare host functions.

  • async-wasi crate provides the asynchronous WASI APIs.


  • Deploy WasmEdge library in your local environment.

    Since this crate depends on the WasmEdge C API, it needs to be installed in your system first. Please refer to WasmEdge Installation and Uninstallation to install the WasmEdge library. The versioning table below shows the version of the WasmEdge library required by each version of the wasmedge-sdk crate.

    wasmedge-sdkWasmEdge libwasmedge-syswasmedge-typeswasmedge-macroasync-wasi

    WasmEdge Rust SDK can automatically search the following paths for the WasmEdge library:

    • /usr/local (Linux/macOS)

    • $HOME/.wasmedge (Linux/macOS)

      Note that if you have installed the WasmEdge library in a different path, you can set the WASMEDGE_INCLUDE_DIR and WASMEDGE_LIB_DIR environment variables to the path of the WasmEdge library.

  • Add wasmedge-sdk crate to your Cargo.toml file. Note that, according to the versioning table, the version of wasmedge-sdk matching WasmEdge v0.13.3 is 0.11.0.

    wasmedge-sdk = "0.11.0"

Notice: The minimum supported Rust version is 1.68.


wasmedge-rustsdk-examples provides a set of examples to demonstrate how to use wasmedge-sdk to, for example, create host functions, create WebAssembly libraries, create plug-ins, etc.