Develop WasmEdge Plug-in

This chapter is WORK IN PROGRESS.

WasmEdge provides a C++ based API for registering extension modules and host functions. While the WasmEdge language SDKs allow registering host functions from a host (wrapping) application, the plugin API allows such extensions to be incorporated into WasmEdge's own building and releasing process.

The C API for the plug-in mechanism is under development. In the future, we will release the C API of plug-in mechanism and recommend developers to implement the plug-ins with C API.

Loadable Plug-in

Loadable plugin is a standalone .so/.dylib/.dll file that WasmEdge can load during runtime environment, and provide modules to be imported.

Please refer to the plugin example code.

WasmEdge Currently Released Plug-ins

There are several plug-in releases with the WasmEdge official releases. Please check the following table to check the release status and how to build from source with the plug-ins.

The WasmEdge-Process plug-in is attached in the WasmEdge release tarballs.

Plug-inRust CrateReleased PlatformsBuild Steps
WasmEdge-Processwasmedge_process_interfacemanylinux2014 x86_64, manylinux2014 aarch64, and ubuntu 20.04 x86_64 (since 0.10.0)Default
WASI-Cryptowasi-cryptomanylinux2014 x86_64, manylinux2014 aarch64, and ubuntu 20.04 x86_64 (since 0.10.1)Build With WASI-Crypto
WASI-NN with OpenVINO backendwasi-nnubuntu 20.04 x86_64 (since 0.10.1)Build With WASI-NN
WASI-NN with PyTorch backendwasi-nnubuntu 20.04 x86_64 (since 0.11.1)Build With WASI-NN
WASI-NN with TensorFlow-Lite backendwasi-nnmanylinux2014 x86_64, manylinux2014 aarch64, and ubuntu 20.04 x86_64 (since 0.11.2)Build With WASI-NN
WasmEdge-HttpsReqwasmedge_http_reqmanylinux2014 x86_64, and manylinux2014 aarch64 (since 0.11.1)Build With WasmEdge-HttpsReq

Due to the OpenVINO and PyTorch dependencies, we only release the WASI-NN plug-in on Ubuntu 20.04 x86_64 now. We'll work with manylinux2014 versions in the future.