Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions docs/contribute/source/plugin/wasi_http.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
sidebar_position: 1
---

# Build with WASI-HTTP Plug-in

The WASI-HTTP plug-in provides an implementation of the [WASI HTTP proposal](https://github.com/WebAssembly/wasi-http), enabling WebAssembly modules to make outbound HTTP requests and handle inbound HTTP connections. It is built on top of [libcpr](https://github.com/libcpr/cpr), a modern C++ HTTP client library.

## Build WasmEdge with WASI-HTTP Plug-in

To enable the WasmEdge WASI-HTTP plug-in, developers need to [build WasmEdge from source](../os/linux.md) with the cmake option `-DWASMEDGE_PLUGIN_WASI_HTTP=ON`.

The build system will automatically fetch and build `libcpr` via CMake's `FetchContent`, so no manual installation of dependencies is required.

```bash
cd <path/to/your/wasmedge/source/folder>
cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=Release -DWASMEDGE_PLUGIN_WASI_HTTP=ON
cmake --build build
cmake --install build
```

:::note
If the built `wasmedge` CLI tool cannot find the WASI-HTTP plug-in, you can set the `WASMEDGE_PLUGIN_PATH` environment variable to the plug-in installation path (such as `/usr/local/lib/wasmedge/`, or the built plug-in path `build/plugins/wasi_http/`) to try to fix this issue.
:::

Then you will have an executable `wasmedge` runtime under `/usr/local/bin` and the WASI-HTTP plug-in under `/usr/local/lib/wasmedge/libwasmedgePluginWasiHttp.so` after installation.

For more information, you can refer to the [GitHub repository](https://github.com/WasmEdge/WasmEdge/tree/master/plugins/wasi_http).
28 changes: 28 additions & 0 deletions docs/contribute/source/plugin/wasi_poll.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
sidebar_position: 2
---

# Build with WASI-Poll Plug-in

The WASI-Poll plug-in provides an implementation of the [WASI Poll proposal](https://github.com/WebAssembly/wasi-poll), which enables WebAssembly modules to perform I/O multiplexing — waiting on multiple I/O events simultaneously. This is essential for building efficient, event-driven WebAssembly applications on the WasmEdge runtime.

## Build WasmEdge with WASI-Poll Plug-in

To enable the WasmEdge WASI-Poll plug-in, developers need to [build WasmEdge from source](../os/linux.md) with the cmake option `-DWASMEDGE_PLUGIN_WASI_POLL=ON`.

The WASI-Poll plug-in has no external dependencies beyond the WasmEdge runtime itself.

```bash
cd <path/to/your/wasmedge/source/folder>
cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=Release -DWASMEDGE_PLUGIN_WASI_POLL=ON
cmake --build build
cmake --install build
```

:::note
If the built `wasmedge` CLI tool cannot find the WASI-Poll plug-in, you can set the `WASMEDGE_PLUGIN_PATH` environment variable to the plug-in installation path (such as `/usr/local/lib/wasmedge/`, or the built plug-in path `build/plugins/wasi_poll/`) to try to fix this issue.
:::

Then you will have an executable `wasmedge` runtime under `/usr/local/bin` and the WASI-Poll plug-in under `/usr/local/lib/wasmedge/libwasmedgePluginWasiPoll.so` after installation.

For more information, you can refer to the [GitHub repository](https://github.com/WasmEdge/WasmEdge/tree/master/plugins/wasi_poll).
39 changes: 39 additions & 0 deletions docs/contribute/source/plugin/wasm_bpf.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
sidebar_position: 3
---

# Build with Wasm-BPF Plug-in

The Wasm-BPF plug-in allows WebAssembly programs to interact with [eBPF](https://ebpf.io/) programs running in the Linux kernel. This enables use cases such as network monitoring, performance tracing, and security enforcement from within a WebAssembly module running on WasmEdge.

## Prerequisites

The Wasm-BPF plug-in requires `libbpf >= 1.2.0`, `libelf`, and `zlib`. On Ubuntu 20.04:

```bash
sudo apt update
sudo apt install -y libbpf-dev libelf-dev zlib1g-dev
```

:::note
If `libbpf >= 1.2.0` is not available through your package manager, the build system will automatically download and build it from source via `FetchContent`. In that case, you still need `libelf` and `zlib` installed.
:::

## Build WasmEdge with Wasm-BPF Plug-in

To enable the WasmEdge Wasm-BPF plug-in, developers need to [build WasmEdge from source](../os/linux.md) with the cmake option `-DWASMEDGE_PLUGIN_WASM_BPF=ON`.

```bash
cd <path/to/your/wasmedge/source/folder>
cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=Release -DWASMEDGE_PLUGIN_WASM_BPF=ON
cmake --build build
cmake --install build
```

:::note
If the built `wasmedge` CLI tool cannot find the Wasm-BPF plug-in, you can set the `WASMEDGE_PLUGIN_PATH` environment variable to the plug-in installation path (such as `/usr/local/lib/wasmedge/`, or the built plug-in path `build/plugins/wasm_bpf/`) to try to fix this issue.
:::

Then you will have an executable `wasmedge` runtime under `/usr/local/bin` and the Wasm-BPF plug-in under `/usr/local/lib/wasmedge/libwasmedgePluginWasmBpf.so` after installation.

For more information, you can refer to the [GitHub repository](https://github.com/WasmEdge/WasmEdge/tree/master/plugins/wasm_bpf).
44 changes: 44 additions & 0 deletions docs/contribute/source/plugin/wasmedge_ffmpeg.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
sidebar_position: 4
---

# Build with WasmEdge-FFmpeg Plug-in

The WasmEdge-FFmpeg plug-in provides WebAssembly bindings to the [FFmpeg](https://ffmpeg.org/) multimedia framework, enabling WasmEdge applications to encode, decode, transcode, mux, demux, stream, filter, and play audio and video content. It wraps the core FFmpeg libraries: `libavcodec`, `libavformat`, `libavfilter`, `libavdevice`, `libavutil`, `libswresample`, and `libswscale`.

## Prerequisites

Install the FFmpeg development libraries on your system.

For Ubuntu 20.04:

```bash
sudo apt update
sudo apt install -y libavdevice-dev libavfilter-dev libavformat-dev \
libavcodec-dev libswresample-dev libswscale-dev libavutil-dev
```

For macOS:

```bash
brew install ffmpeg
```

## Build WasmEdge with WasmEdge-FFmpeg Plug-in

To enable the WasmEdge-FFmpeg plug-in, developers need to [build WasmEdge from source](../os/linux.md) with the cmake option `-DWASMEDGE_PLUGIN_FFMPEG=ON`.

```bash
cd <path/to/your/wasmedge/source/folder>
cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=Release -DWASMEDGE_PLUGIN_FFMPEG=ON
cmake --build build
cmake --install build
```

:::note
If the built `wasmedge` CLI tool cannot find the WasmEdge-FFmpeg plug-in, you can set the `WASMEDGE_PLUGIN_PATH` environment variable to the plug-in installation path (such as `/usr/local/lib/wasmedge/`, or the built plug-in path `build/plugins/wasmedge_ffmpeg/`) to try to fix this issue.
:::

Then you will have an executable `wasmedge` runtime under `/usr/local/bin` and the WasmEdge-FFmpeg plug-in under `/usr/local/lib/wasmedge/libwasmedgePluginWasmEdgeFFmpeg.so` after installation.

For more information, you can refer to the [GitHub repository](https://github.com/WasmEdge/WasmEdge/tree/master/plugins/wasmedge_ffmpeg).
43 changes: 43 additions & 0 deletions docs/contribute/source/plugin/wasmedge_ocr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
sidebar_position: 5
---

# Build with WasmEdge-OCR Plug-in

The WasmEdge-OCR plug-in provides optical character recognition (OCR) capabilities to WebAssembly applications running on WasmEdge. It is powered by [Tesseract](https://github.com/tesseract-ocr/tesseract), an open-source OCR engine, and [Leptonica](http://leptonica.org/), its image processing dependency.

## Prerequisites

Install Tesseract and Leptonica development libraries on your system.

For Ubuntu 20.04:

```bash
sudo apt update
sudo apt install -y libtesseract-dev libleptonica-dev
```

For macOS:

```bash
brew install tesseract leptonica
```

## Build WasmEdge with WasmEdge-OCR Plug-in

To enable the WasmEdge-OCR plug-in, developers need to [build WasmEdge from source](../os/linux.md) with the cmake option `-DWASMEDGE_PLUGIN_OCR=ON`.

```bash
cd <path/to/your/wasmedge/source/folder>
cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=Release -DWASMEDGE_PLUGIN_OCR=ON
cmake --build build
cmake --install build
```

:::note
If the built `wasmedge` CLI tool cannot find the WasmEdge-OCR plug-in, you can set the `WASMEDGE_PLUGIN_PATH` environment variable to the plug-in installation path (such as `/usr/local/lib/wasmedge/`, or the built plug-in path `build/plugins/wasmedge_ocr/`) to try to fix this issue.
:::

Then you will have an executable `wasmedge` runtime under `/usr/local/bin` and the WasmEdge-OCR plug-in under `/usr/local/lib/wasmedge/libwasmedgePluginWasmEdgeOCR.so` after installation.

For more information, you can refer to the [GitHub repository](https://github.com/WasmEdge/WasmEdge/tree/master/plugins/wasmedge_ocr).
43 changes: 43 additions & 0 deletions docs/contribute/source/plugin/wasmedge_opencvmini.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
sidebar_position: 6
---

# Build with WasmEdge-OpenCVMini Plug-in

The WasmEdge-OpenCVMini plug-in exposes a subset of [OpenCV](https://opencv.org/) image processing functions to WebAssembly applications running on WasmEdge. It is designed for AI input/output pre- and post-processing tasks such as image resizing, color conversion, and basic transformations.

## Prerequisites

Install OpenCV 4 on your system.

For Ubuntu 20.04:

```bash
sudo apt update
sudo apt install -y libopencv-dev
```

For macOS:

```bash
brew install opencv
```

## Build WasmEdge with WasmEdge-OpenCVMini Plug-in

To enable the WasmEdge-OpenCVMini plug-in, developers need to [build WasmEdge from source](../os/linux.md) with the cmake option `-DWASMEDGE_PLUGIN_OPENCVMINI=ON`.

```bash
cd <path/to/your/wasmedge/source/folder>
cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=Release -DWASMEDGE_PLUGIN_OPENCVMINI=ON
cmake --build build
cmake --install build
```

:::note
If the built `wasmedge` CLI tool cannot find the WasmEdge-OpenCVMini plug-in, you can set the `WASMEDGE_PLUGIN_PATH` environment variable to the plug-in installation path (such as `/usr/local/lib/wasmedge/`, or the built plug-in path `build/plugins/wasmedge_opencvmini/`) to try to fix this issue.
:::

Then you will have an executable `wasmedge` runtime under `/usr/local/bin` and the WasmEdge-OpenCVMini plug-in under `/usr/local/lib/wasmedge/libwasmedgePluginWasmEdgeOpenCVMini.so` after installation.

For more information, you can refer to the [GitHub repository](https://github.com/WasmEdge/WasmEdge/tree/master/plugins/wasmedge_opencvmini).
84 changes: 84 additions & 0 deletions docs/contribute/source/plugin/wasmedge_stablediffusion.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
sidebar_position: 11
---

# Build with WasmEdge Stable Diffusion Plug-in

The WasmEdge Stable Diffusion plug-in enables WebAssembly applications to run image generation and image-to-image inference workloads using the [stable-diffusion.cpp](https://github.com/leejet/stable-diffusion.cpp) backend. It supports CPU inference out of the box, with optional CUDA and Metal acceleration for GPU-backed environments.

## Prerequisites

The Stable Diffusion plug-in has no mandatory system library dependencies — the `stable-diffusion.cpp` source is fetched automatically via CMake's `FetchContent` during the build. However, for GPU-accelerated builds, the following are required:

- **CUDA** (for NVIDIA GPUs): Install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) appropriate for your platform.
- **Metal** (for Apple Silicon): Available by default on macOS with Xcode command-line tools installed.
- **OpenMP** (optional, for multi-threaded CPU inference): Install via your system package manager.

For Ubuntu:

```bash
sudo apt update
sudo apt install -y build-essential
# Optional: for OpenMP support
sudo apt install -y libomp-dev
```

For macOS:

```bash
xcode-select --install
```

## Build WasmEdge with the Stable Diffusion Plug-in

To enable the WasmEdge Stable Diffusion plug-in, developers need to [build WasmEdge from source](../os/linux.md) with the cmake option `-DWASMEDGE_PLUGIN_STABLEDIFFUSION=ON`.

```bash
cd <path/to/your/wasmedge/source/folder>
cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=Release \
-DWASMEDGE_PLUGIN_STABLEDIFFUSION=ON
cmake --build build
cmake --install build
```

### Optional: Enable CUDA Acceleration

```bash
cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=Release \
-DWASMEDGE_PLUGIN_STABLEDIFFUSION=ON \
-DWASMEDGE_PLUGIN_STABLEDIFFUSION_CUDA=ON
cmake --build build
cmake --install build
```

### Optional: Enable Metal Acceleration (Apple Silicon)

```bash
cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=Release \
-DWASMEDGE_PLUGIN_STABLEDIFFUSION=ON \
-DWASMEDGE_PLUGIN_STABLEDIFFUSION_METAL=ON
cmake --build build
cmake --install build
```

### Optional: Enable OpenMP

```bash
cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=Release \
-DWASMEDGE_PLUGIN_STABLEDIFFUSION=ON \
-DWASMEDGE_PLUGIN_STABLEDIFFUSION_OPENMP=ON
cmake --build build
cmake --install build
```

<!-- prettier-ignore -->
:::note
If the built `wasmedge` CLI tool cannot find the Stable Diffusion plug-in, you can set the `WASMEDGE_PLUGIN_PATH` environment variable to the plug-in installation path (such as `/usr/local/lib/wasmedge/`, or the built plug-in path `build/plugins/wasmedge_stablediffusion/`) to try to fix this issue.
:::

Then you will have an executable `wasmedge` runtime under `/usr/local/bin` and the Stable Diffusion plug-in under `/usr/local/lib/wasmedge/libwasmedgePluginStableDiffusion.so` after installation.

## More Information

- [WasmEdge Stable Diffusion Plug-in source on GitHub](https://github.com/WasmEdge/WasmEdge/tree/master/plugins/wasmedge_stablediffusion)
- [stable-diffusion.cpp upstream](https://github.com/leejet/stable-diffusion.cpp)
44 changes: 44 additions & 0 deletions docs/contribute/source/plugin/wasmedge_zlib.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
sidebar_position: 12
---

# Build with WasmEdge zlib Plug-in

The WasmEdge zlib plug-in provides zlib compression and decompression functionality to WebAssembly applications running on WasmEdge. It allows Wasm modules that depend on zlib (such as those compiled from C/C++ with zlib linkage) to use the host system's zlib implementation directly.

## Prerequisites

Install zlib development headers on your system.

For Ubuntu:

```bash
sudo apt update
sudo apt install -y zlib1g-dev
```

For macOS:

```bash
brew install zlib
```

## Build WasmEdge with the zlib Plug-in

To enable the WasmEdge zlib plug-in, developers need to [build WasmEdge from source](../os/linux.md) with the cmake option `-DWASMEDGE_PLUGIN_ZLIB=ON`.

```bash
cd <path/to/your/wasmedge/source/folder>
cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=Release -DWASMEDGE_PLUGIN_ZLIB=ON
cmake --build build
cmake --install build
```

<!-- prettier-ignore -->
:::note
If the built `wasmedge` CLI tool cannot find the zlib plug-in, you can set the `WASMEDGE_PLUGIN_PATH` environment variable to the plug-in installation path (such as `/usr/local/lib/wasmedge/`, or the built plug-in path `build/plugins/wasmedge_zlib/`) to try to fix this issue.
:::

Then you will have an executable `wasmedge` runtime under `/usr/local/bin` and the zlib plug-in under `/usr/local/lib/wasmedge/libwasmedgePluginWasmEdgeZlib.so` after installation.

For more information, you can refer to the [GitHub repository](https://github.com/WasmEdge/WasmEdge/tree/master/plugins/wasmedge_zlib).
Loading