WasmEdge Plug-ins
For those workloads which are too heavy to compile into WebAssembly, it would be more appropriate to build them into native host functions. To satisfy the portability of WebAssembly runtime, WasmEdge introduced the plug-in mechanism to make the host functions loadable and portable.
The plug-in mechanism for WasmEdge is an easy way to extend the host modules from loadable shared libraries. With the plug-ins, users can load and instantiate the host functions from the shared libraries released by WasmEdge official or even by other developers.
Official Released Plug-ins
The following lists are the WasmEdge official released plug-ins. Users can install them easily by the installer.
Plug-in | Description | Platform Support | Language support |
---|---|---|---|
WasmEdge-Process | Allows WebAssembly programs to execute native commands in the host operating system. It supports passing arguments, environment variables, STDIN /STDOUT pipes, and security policies for host access. | manylinux2014 x86_64 , manylinux2014 aarch64 , and ubuntu 20.04 x86_64 (since 0.10.0 ) | Rust |
WASI-Crypto | APIs that a runtime can expose to WebAssembly modules in order to perform cryptographic operations and key management. | manylinux2014 x86_64 , manylinux2014 aarch64 , and ubuntu 20.04 x86_64 (since 0.10.1 ) | Rust |
WASI-NN (OpenVINO backend) | AI inference using OpenVINO models. | ubuntu 20.04 x86_64 (since 0.10.1 ) | Rust, JavaScript |
WASI-NN (Pytorch backend) | AI inference using Pytorch models. | manylinux2014 x86_64 and ubuntu 20.04 x86_64 (since 0.11.1 ) | Rust, JavaScript |
WASI-NN (TensorFlow-Lite backend) | AI inference using TensorFlow-Lite models. | manylinux2014 x86_64 , manylinux2014 aarch64 , and ubuntu 20.04 x86_64 (since 0.11.2 ) | Rust, JavaScript |
WasmEdge-Image | A native library to manipulate images for AI inference tasks. | manylinux2014 x86_64 , manylinux2014 aarch64 , ubuntu 20.04 x86_64 , darwin x86_64 , and darwin arm64 (since 0.13.0 ) | Rust (0.3.0) |
WasmEdge-Tensorflow | A native library to inferring TensorFlow models. | manylinux2014 x86_64 , manylinux2014 aarch64 , ubuntu 20.04 x86_64 , darwin x86_64 , and darwin arm64 (since 0.13.0 ) | Rust (0.3.0) |
WasmEdge-TensorflowLite | A native library to inferring TensorFlow-Lite models. | manylinux2014 x86_64 , manylinux2014 aarch64 , ubuntu 20.04 x86_64 , darwin x86_64 , and darwin arm64 (since 0.13.0 ) | Rust |
WasmEdge-OpenCV | Very popular utility functions to process images and videos for AI input / output. | Unreleased | Rust |
Old WasmEdge Extensions
Besides the plug-ins, WasmEdge provides the extensions before the 0.13.0
versions. Noticed that the extensions are replaced by the corresponding plug-ins after the 0.13.0
version.
The latest version supporting the extensions is 0.12.1
. This chapter will be deprecated when the 0.12.x
versions are no longer supported by the WasmEdge installer.
Extension | Description | Platform Support | Language support |
---|---|---|---|
Image processing | A native library to manipulate images for AI inference tasks. Migrated into the plug-in after WasmEdge 0.13.0 . | manylinux2014 x86_64 , manylinux2014 aarch64 , android aarch64 , ubuntu 20.04 x86_64 , and darwin x86_64 | Rust (0.2.2) |
TensorFlow and Tensorflow-Lite | A native library to inferring TensorFlow and TensorFlow-Lite models. Migrated into the plug-in after WasmEdge 0.13.0 . | manylinux2014 x86_64 , manylinux2014 aarch64 (TensorFlow-Lite only), android aarch64 (TensorFlow-Lite only), ubuntu 20.04 x86_64 , and darwin x86_64 | Rust (0.2.2) |