Crate wasmedge_sys

Source
Expand description

§Overview

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.71 or above in the stable channel.

§Build

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-macroasync-wasi
    0.14.0+0.14.10.19.30.6.00.6.10.2.1
    0.14.0+0.14.00.19.20.6.00.6.10.2.1
    0.13.20.13.50.17.50.4.40.6.10.1.0
    0.13.10.13.50.17.40.4.40.6.10.1.0
    0.13.00.13.50.17.30.4.40.6.10.1.0
    0.12.20.13.40.17.20.4.40.6.10.1.0
    0.12.10.13.40.17.10.4.40.6.10.1.0
    0.12.00.13.40.17.00.4.40.6.10.1.0
    0.11.20.13.30.16.20.4.30.6.10.1.0
    0.11.00.13.30.16.00.4.30.6.00.0.3
    0.10.10.13.30.15.10.4.20.5.00.0.2
    0.10.00.13.20.15.00.4.20.5.00.0.2
    0.9.00.13.10.14.00.4.20.4.00.0.1
    0.9.00.13.00.14.00.4.20.4.00.0.1
    0.8.10.12.10.13.10.4.10.3.0-
    0.8.00.12.00.13.00.4.10.3.0-
    0.7.10.11.20.12.20.3.10.3.0-
    0.7.00.11.20.120.3.10.3.0-
    0.6.00.11.20.110.3.00.2.0-
    0.5.00.11.10.100.3.00.1.0-
    0.4.00.11.00.90.2.1--
    0.3.00.10.10.80.2--
    0.1.00.10.00.70.1--

§API Reference

§See also

Modules§

  • asyncasync and Linux
    Defines async related types.
  • Foreign function interfaces generated from WasmEdge C-API.
  • Defines WasmEdge CallingFrame.
  • Defines WasmEdge instance structs, including Function, Global, Memory, Table, and etc.
  • Defines PluginManager and Plugin structs.
  • Defines the WebAssembly primitive types.
  • Defines the versioning and logging functions.

Structs§

  • 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.
  • Struct of WasmEdge FuncType.
  • 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.
  • Struct of WasmEdge GlobalType.
  • 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 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).
  • Struct of WasmEdge MemoryType.
  • Defines compiled in-memory representation of an input WASM binary.
  • Struct of WasmEdge Statistics.
  • The Store is a collection of registered modules and assists wasm modules in finding the import modules they need.
  • A WasmEdge Table defines a WebAssembly table instance described by its type. A table is an array-like structure and stores function references.
  • Struct of WasmEdge TableType.
  • Struct of WasmEdge Validator.
  • A WasiModule is a module instance for the WASI specification.
  • Defines a WebAssembly value.

Traits§

  • The object as an module instance is required to implement this trait.

Type Aliases§