From 74f66c3799c02a6c8c26a2ab5cc0a4fda535c861 Mon Sep 17 00:00:00 2001 From: Ankit Ram Date: Tue, 16 Jun 2026 00:56:41 +0530 Subject: [PATCH 01/10] docs: add Wasm GC proposal tutorial and update proposals link Signed-off-by: Ankit Ram --- docs/start/wasmedge/extensions/gc.md | 138 ++++++++++++++++++++ docs/start/wasmedge/extensions/proposals.md | 2 +- 2 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 docs/start/wasmedge/extensions/gc.md diff --git a/docs/start/wasmedge/extensions/gc.md b/docs/start/wasmedge/extensions/gc.md new file mode 100644 index 00000000..ce84226b --- /dev/null +++ b/docs/start/wasmedge/extensions/gc.md @@ -0,0 +1,138 @@ +--- +sidebar_position: 2 +--- + +# Garbage Collection + +WasmEdge supports the [WebAssembly Garbage Collection (GC) proposal](https://github.com/WebAssembly/gc) starting from version `0.14.0`. This allows high-level languages like Kotlin, Dart, and OCaml to compile to WebAssembly without bundling their own garbage collector, resulting in smaller binaries and better runtime performance. + +## What is Wasm GC? + +Normally, WebAssembly manages memory manually — programs allocate and free memory themselves using linear memory. The GC proposal adds first-class garbage-collected types: **structs** (fixed heterogeneous fields) and **arrays** (homogeneous elements), both allocated on the heap and automatically reclaimed when no longer reachable. + +This is enabled by default in WasmEdge since `0.16.0`. You can disable it with the `--disable-gc` CLI flag if needed. + +## Prerequisites + +- WasmEdge `0.14.0` or later. See the [installation guide](../../../start/install.md). +- [`wat2wasm`](https://github.com/WebAssembly/wabt) from the WABT toolkit, to compile `.wat` source files to `.wasm`. + +Install WABT on Linux: + +```bash +apt install wabt +``` + +Or on macOS: + +```bash +brew install wabt +``` + +## Example: Working with Structs + +The following WAT (WebAssembly Text Format) example defines a `$point` struct with two `i32` fields, allocates one, sets a field, and returns a value from it. + +Create a file called `point.wat`: + +```wasm +(module + (type $point (struct (field $x (mut i32)) (field $y (mut i32)))) + + (func (export "make_point") (result i32) + (local $p (ref $point)) + ;; Allocate a new $point struct with x=10, y=20 + (local.set $p + (struct.new $point (i32.const 10) (i32.const 20)) + ) + ;; Update x to 99 + (struct.set $point $x (local.get $p) (i32.const 99)) + ;; Return the value of x + (struct.get $point $x (local.get $p)) + ) +) +``` + +Compile it to a `.wasm` binary: + +```bash +wat2wasm point.wat -o point.wasm +``` + +Run it with WasmEdge: + +```bash +wasmedge --invoke make_point point.wasm +``` + +Expected output: + +``` +99 +``` + +## Example: Working with Arrays + +The following example creates a GC-managed array of `i32` values, fills it with a value, and reads back an element. + +Create a file called `array.wat`: + +```wasm +(module + (type $int_array (array (mut i32))) + + (func (export "array_example") (result i32) + (local $a (ref $int_array)) + ;; Allocate an array of length 5, initialized to 0 + (local.set $a + (array.new_default $int_array (i32.const 5)) + ) + ;; Set element at index 2 to 42 + (array.set $int_array (local.get $a) (i32.const 2) (i32.const 42)) + ;; Return element at index 2 + (array.get $int_array (local.get $a) (i32.const 2)) + ) +) +``` + +Compile and run: + +```bash +wat2wasm array.wat -o array.wasm +wasmedge --invoke array_example array.wasm +``` + +Expected output: + +``` +42 +``` + +## Disabling GC + +If you need to run a Wasm module without GC support (for example, to test compatibility), pass the `--disable-gc` flag: + +```bash +wasmedge --disable-gc your_module.wasm +``` + +## C API + +To configure GC support programmatically via the WasmEdge C API, use the `WasmEdge_Proposal_GC` enumeration value: + +```c +WasmEdge_ConfigureContext *ConfCxt = WasmEdge_ConfigureCreate(); +// GC is enabled by default since 0.16.0. +// To disable it: +WasmEdge_ConfigureRemoveProposal(ConfCxt, WasmEdge_Proposal_GC); +``` + +## Language Support + +Languages that compile to Wasm GC and can run on WasmEdge include: + +- **Kotlin/Wasm** — via the Kotlin compiler's `wasmGc` target +- **Dart** — via `dart compile wasm` +- **OCaml** — via the `wasm_of_ocaml` compiler + +For language-specific guides, refer to the respective language's documentation on compiling to the `wasm32-unknown-unknown` GC target. \ No newline at end of file diff --git a/docs/start/wasmedge/extensions/proposals.md b/docs/start/wasmedge/extensions/proposals.md index faeacc3b..3e1f3618 100644 --- a/docs/start/wasmedge/extensions/proposals.md +++ b/docs/start/wasmedge/extensions/proposals.md @@ -47,7 +47,7 @@ The following proposals are under development and may be supported in the future [Component Model]: https://github.com/WebAssembly/component-model [Exception handling]: https://github.com/WebAssembly/exception-handling [Typed Function References]: https://github.com/WebAssembly/function-references -[Garbage collection]: https://github.com/WebAssembly/gc +[Garbage collection]: ./gc [Relaxed SIMD]: https://github.com/WebAssembly/relaxed-simd [Memory64]: https://github.com/WebAssembly/memory64 [WebAssembly C and C++ API]: https://github.com/WebAssembly/wasm-c-api From e7e9f6b8cca8ad5a249b1318eb24d67af08a7762 Mon Sep 17 00:00:00 2001 From: Ankit Ram Date: Tue, 16 Jun 2026 16:19:17 +0530 Subject: [PATCH 02/10] t push origin docs/wasm-gc-proposal --forcedocs: address Copilot review comments Signed-off-by: Ankit Ram --- docs/start/wasmedge/extensions/gc.md | 9 +++++---- docs/start/wasmedge/extensions/proposals.md | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/start/wasmedge/extensions/gc.md b/docs/start/wasmedge/extensions/gc.md index ce84226b..c755fa73 100644 --- a/docs/start/wasmedge/extensions/gc.md +++ b/docs/start/wasmedge/extensions/gc.md @@ -1,5 +1,5 @@ --- -sidebar_position: 2 +sidebar_position: 3 --- # Garbage Collection @@ -10,7 +10,7 @@ WasmEdge supports the [WebAssembly Garbage Collection (GC) proposal](https://git Normally, WebAssembly manages memory manually — programs allocate and free memory themselves using linear memory. The GC proposal adds first-class garbage-collected types: **structs** (fixed heterogeneous fields) and **arrays** (homogeneous elements), both allocated on the heap and automatically reclaimed when no longer reachable. -This is enabled by default in WasmEdge since `0.16.0`. You can disable it with the `--disable-gc` CLI flag if needed. +This is enabled by default in WasmEdge since `0.16.0`. For WasmEdge `0.14.x`–`0.15.x`, enable it explicitly with the (deprecated) `--enable-gc` flag; you can disable GC with `--disable-gc` when needed. ## Prerequisites @@ -122,9 +122,10 @@ To configure GC support programmatically via the WasmEdge C API, use the `WasmEd ```c WasmEdge_ConfigureContext *ConfCxt = WasmEdge_ConfigureCreate(); -// GC is enabled by default since 0.16.0. -// To disable it: +// WasmEdge 0.16.0+ enables GC by default; to disable it: WasmEdge_ConfigureRemoveProposal(ConfCxt, WasmEdge_Proposal_GC); +// WasmEdge 0.14.x–0.15.x has GC off by default; to enable it instead: +// WasmEdge_ConfigureAddProposal(ConfCxt, WasmEdge_Proposal_GC); ``` ## Language Support diff --git a/docs/start/wasmedge/extensions/proposals.md b/docs/start/wasmedge/extensions/proposals.md index 3e1f3618..e8879c54 100644 --- a/docs/start/wasmedge/extensions/proposals.md +++ b/docs/start/wasmedge/extensions/proposals.md @@ -47,7 +47,7 @@ The following proposals are under development and may be supported in the future [Component Model]: https://github.com/WebAssembly/component-model [Exception handling]: https://github.com/WebAssembly/exception-handling [Typed Function References]: https://github.com/WebAssembly/function-references -[Garbage collection]: ./gc +[Garbage collection]: ./gc.md [Relaxed SIMD]: https://github.com/WebAssembly/relaxed-simd [Memory64]: https://github.com/WebAssembly/memory64 [WebAssembly C and C++ API]: https://github.com/WebAssembly/wasm-c-api From b8b7e2ae70a22bbd2da765cc2819143d63bcd71f Mon Sep 17 00:00:00 2001 From: Ankit Ram Date: Fri, 19 Jun 2026 18:51:33 +0530 Subject: [PATCH 03/10] docs: add plugin documentation pages Signed-off-by: Ankit Ram --- docs/contribute/source/plugin/wasi_http.md | 28 +++++++ docs/contribute/source/plugin/wasi_poll.md | 28 +++++++ docs/contribute/source/plugin/wasm_bpf.md | 39 +++++++++ .../source/plugin/wasmedge_ffmpeg.md | 44 ++++++++++ docs/contribute/source/plugin/wasmedge_ocr.md | 43 ++++++++++ .../source/plugin/wasmedge_opencvmini.md | 43 ++++++++++ .../source/plugin/wasmedge_stablediffusion.md | 84 +++++++++++++++++++ .../contribute/source/plugin/wasmedge_zlib.md | 44 ++++++++++ 8 files changed, 353 insertions(+) create mode 100644 docs/contribute/source/plugin/wasi_http.md create mode 100644 docs/contribute/source/plugin/wasi_poll.md create mode 100644 docs/contribute/source/plugin/wasm_bpf.md create mode 100644 docs/contribute/source/plugin/wasmedge_ffmpeg.md create mode 100644 docs/contribute/source/plugin/wasmedge_ocr.md create mode 100644 docs/contribute/source/plugin/wasmedge_opencvmini.md create mode 100644 docs/contribute/source/plugin/wasmedge_stablediffusion.md create mode 100644 docs/contribute/source/plugin/wasmedge_zlib.md diff --git a/docs/contribute/source/plugin/wasi_http.md b/docs/contribute/source/plugin/wasi_http.md new file mode 100644 index 00000000..d606b9e5 --- /dev/null +++ b/docs/contribute/source/plugin/wasi_http.md @@ -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 +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). diff --git a/docs/contribute/source/plugin/wasi_poll.md b/docs/contribute/source/plugin/wasi_poll.md new file mode 100644 index 00000000..03862bbf --- /dev/null +++ b/docs/contribute/source/plugin/wasi_poll.md @@ -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 +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). diff --git a/docs/contribute/source/plugin/wasm_bpf.md b/docs/contribute/source/plugin/wasm_bpf.md new file mode 100644 index 00000000..f78ad09d --- /dev/null +++ b/docs/contribute/source/plugin/wasm_bpf.md @@ -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 +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). diff --git a/docs/contribute/source/plugin/wasmedge_ffmpeg.md b/docs/contribute/source/plugin/wasmedge_ffmpeg.md new file mode 100644 index 00000000..666999ed --- /dev/null +++ b/docs/contribute/source/plugin/wasmedge_ffmpeg.md @@ -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 +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). diff --git a/docs/contribute/source/plugin/wasmedge_ocr.md b/docs/contribute/source/plugin/wasmedge_ocr.md new file mode 100644 index 00000000..c806f63f --- /dev/null +++ b/docs/contribute/source/plugin/wasmedge_ocr.md @@ -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 +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). diff --git a/docs/contribute/source/plugin/wasmedge_opencvmini.md b/docs/contribute/source/plugin/wasmedge_opencvmini.md new file mode 100644 index 00000000..11bfaf7f --- /dev/null +++ b/docs/contribute/source/plugin/wasmedge_opencvmini.md @@ -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 +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). diff --git a/docs/contribute/source/plugin/wasmedge_stablediffusion.md b/docs/contribute/source/plugin/wasmedge_stablediffusion.md new file mode 100644 index 00000000..f1b64404 --- /dev/null +++ b/docs/contribute/source/plugin/wasmedge_stablediffusion.md @@ -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 +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 +``` + + +:::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) diff --git a/docs/contribute/source/plugin/wasmedge_zlib.md b/docs/contribute/source/plugin/wasmedge_zlib.md new file mode 100644 index 00000000..ad0f50fb --- /dev/null +++ b/docs/contribute/source/plugin/wasmedge_zlib.md @@ -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 +cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=Release -DWASMEDGE_PLUGIN_ZLIB=ON +cmake --build build +cmake --install build +``` + + +:::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). From 56ab444f3fd7c88ed6ff41ca7a1b2da98aa157b7 Mon Sep 17 00:00:00 2001 From: Ankit Ram Date: Mon, 22 Jun 2026 12:47:31 +0530 Subject: [PATCH 04/10] docs: add plugin links to table and build guide Signed-off-by: Ankit Ram --- docs/contribute/source/build_from_src.md | 8 ++++++++ docs/start/wasmedge/extensions/plugins.md | 12 ++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/docs/contribute/source/build_from_src.md b/docs/contribute/source/build_from_src.md index ceaa3378..e2ded165 100644 --- a/docs/contribute/source/build_from_src.md +++ b/docs/contribute/source/build_from_src.md @@ -99,6 +99,14 @@ Developers can follow the steps to build WasmEdge with plug-ins from source. - [WasmEdge-TensorFlow](plugin/tensorflow.md) - [WasmEdge-TensorFlowLite](plugin/tensorflowlite.md) - [WASI-Logging](plugin/wasi_logging.md) +- [WASI-HTTP](plugin/wasi_http.md) +- [WASI-Poll](plugin/wasi_poll.md) +- [Wasm-BPF](plugin/wasm_bpf.md) +- [WasmEdge-FFmpeg](plugin/wasmedge_ffmpeg.md) +- [WasmEdge-OCR](plugin/wasmedge_ocr.md) +- [WasmEdge-OpenCVMini](plugin/wasmedge_opencvmini.md) +- [WasmEdge-StableDiffusion](plugin/wasmedge_stablediffusion.md) +- [WasmEdge-Zlib](plugin/wasmedge_zlib.md) ## Run Tests diff --git a/docs/start/wasmedge/extensions/plugins.md b/docs/start/wasmedge/extensions/plugins.md index d6fcece4..10b3005b 100644 --- a/docs/start/wasmedge/extensions/plugins.md +++ b/docs/start/wasmedge/extensions/plugins.md @@ -24,14 +24,18 @@ The following lists are the WasmEdge official released plug-ins. Users can insta | [WASI-NN](https://github.com/WebAssembly/wasi-nn) [(Whisper backend)](../../../develop/rust/wasinn/whisper.md) | AI inference using Whisper models. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.14.1`) | [Rust](https://github.com/second-state/wasmedge-wasi-nn) | [Steps](../../../contribute/source/plugin/wasi_nn.md#build-wasmedge-with-wasi-nn-whisper-backend) | | [WASI-NN](https://github.com/WebAssembly/wasi-nn) Burn.rs backend (Squeezenet) | AI inference using Squeezenet models in Burn.rs. | `ubuntu 20.04 (x86_64)`
(since `0.14.1`) | [Rust](https://github.com/second-state/wasmedge-wasi-nn) | | | [WASI-NN](https://github.com/WebAssembly/wasi-nn) Burn.rs backend (Whisper) | AI inference using Whisper models in Burn.rs. | `ubuntu 20.04 (x86_64)`
(since `0.14.1`) | [Rust](https://github.com/second-state/wasmedge-wasi-nn) | | -| WasmEdge-ffmpeg | | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.14.0`) | | | +| WasmEdge-ffmpeg | FFmpeg-based audio and video processing for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.14.0`) | Rust | [Steps](../../../contribute/source/plugin/wasmedge_ffmpeg.md) | | [WasmEdge-Image](../../../contribute/source/plugin/image.md) | A native library to manipulate images for AI inference tasks. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | [Rust](https://crates.io/crates/wasmedge_tensorflow_interface) (0.3.0) | [Steps](../../../contribute/source/plugin/image.md) | | WasmEdge-LLMC | | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
(since `0.14.1`) | | | -| WasmEdge-OpenCV | Very popular utility functions to process images and videos for AI input/output. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.3`) | | | +| WasmEdge-OpenCV | Very popular utility functions to process images and videos for AI input/output. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.3`) | Rust | [Steps](../../../contribute/source/plugin/wasmedge_opencvmini.md) | | [WasmEdge-Process](../../../contribute/source/plugin/process.md) | 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, aarch64)`
`ubuntu 20.04 (x86_64)`
(since `0.10.0`) | [Rust](https://crates.io/crates/wasmedge_process_interface) | [Steps](../../../contribute/source/plugin/process.md) | -| WasmEdge-StableDiffusion | | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.14.1`) | | | +| WasmEdge-StableDiffusion | Image generation and inference using Stable Diffusion models. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.14.1`) | Rust | [Steps](../../../contribute/source/plugin/wasmedge_stablediffusion.md) | | [WasmEdge-Tensorflow](../../../contribute/source/plugin/tensorflow.md) | A native library for inferring TensorFlow models.| `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | [Rust](https://crates.io/crates/wasmedge_tensorflow_interface) (0.3.0) | [Steps](../../../contribute/source/plugin/tensorflow.md) | | [WasmEdge-TensorflowLite](../../../contribute/source/plugin/tensorflowlite.md)| A native library for inferring TensorFlow-Lite models. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | [Rust](https://crates.io/crates/wasmedge_tensorflow_interface) (0.3.0) | [Steps](../../../contribute/source/plugin/tensorflowlite.md) | -| WasmEdge-zlib | ??? | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.5`) | | | +| WasmEdge-zlib | zlib compression and decompression for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.5`) | Rust | [Steps](../../../contribute/source/plugin/wasmedge_zlib.md) | +| [WASI-HTTP](../../../contribute/source/plugin/wasi_http.md) | HTTP client and server support for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)` | Rust | [Steps](../../../contribute/source/plugin/wasi_http.md) | +| [WASI-Poll](../../../contribute/source/plugin/wasi_poll.md) | Polling API for asynchronous I/O in WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)` | Rust | [Steps](../../../contribute/source/plugin/wasi_poll.md) | +| [Wasm-BPF](../../../contribute/source/plugin/wasm_bpf.md) | eBPF program development and execution for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)` | Rust | [Steps](../../../contribute/source/plugin/wasm_bpf.md) | +| [WasmEdge-OCR](../../../contribute/source/plugin/wasmedge_ocr.md) | Optical character recognition for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)` | Rust | [Steps](../../../contribute/source/plugin/wasmedge_ocr.md) | | [WasmEdge-eBPF](../../../contribute/source/plugin/ebpf.md) | A native library for inferring eBPF applications | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
(since `0.13.2`) | Rust | [Steps](../../../contribute/source/plugin/ebpf.md) | | [WasmEdge-rustls](../../../contribute/source/plugin/rusttls.md) (DEPRECATED) | A native library for inferring Rust and TLS Library | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`, until `0.13.5`) | [Rust](https://crates.io/crates/wasmedge_rustls_api) | [Steps](../../../contribute/source/plugin/rusttls.md) | From 2ef53bcaec52dd1ddcf0c0dc547a96879faf740c Mon Sep 17 00:00:00 2001 From: Ankit Ram Date: Mon, 22 Jun 2026 12:59:37 +0530 Subject: [PATCH 05/10] docs: revert gc proposal link to original upstream URL Signed-off-by: Ankit Ram --- docs/start/wasmedge/extensions/proposals.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/start/wasmedge/extensions/proposals.md b/docs/start/wasmedge/extensions/proposals.md index e8879c54..faeacc3b 100644 --- a/docs/start/wasmedge/extensions/proposals.md +++ b/docs/start/wasmedge/extensions/proposals.md @@ -47,7 +47,7 @@ The following proposals are under development and may be supported in the future [Component Model]: https://github.com/WebAssembly/component-model [Exception handling]: https://github.com/WebAssembly/exception-handling [Typed Function References]: https://github.com/WebAssembly/function-references -[Garbage collection]: ./gc.md +[Garbage collection]: https://github.com/WebAssembly/gc [Relaxed SIMD]: https://github.com/WebAssembly/relaxed-simd [Memory64]: https://github.com/WebAssembly/memory64 [WebAssembly C and C++ API]: https://github.com/WebAssembly/wasm-c-api From 571022a7c575cd80c514494e6a567402d68af8b6 Mon Sep 17 00:00:00 2001 From: Ankit Ram Date: Tue, 23 Jun 2026 11:25:28 +0530 Subject: [PATCH 06/10] docs: fix plugin names, add version info, fix sidebar position Signed-off-by: Ankit Ram --- docs/start/wasmedge/extensions/gc.md | 2 +- docs/start/wasmedge/extensions/plugins.md | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/start/wasmedge/extensions/gc.md b/docs/start/wasmedge/extensions/gc.md index c755fa73..eecdacc0 100644 --- a/docs/start/wasmedge/extensions/gc.md +++ b/docs/start/wasmedge/extensions/gc.md @@ -1,5 +1,5 @@ --- -sidebar_position: 3 +sidebar_position: 4 --- # Garbage Collection diff --git a/docs/start/wasmedge/extensions/plugins.md b/docs/start/wasmedge/extensions/plugins.md index 10b3005b..d1824b5c 100644 --- a/docs/start/wasmedge/extensions/plugins.md +++ b/docs/start/wasmedge/extensions/plugins.md @@ -24,18 +24,18 @@ The following lists are the WasmEdge official released plug-ins. Users can insta | [WASI-NN](https://github.com/WebAssembly/wasi-nn) [(Whisper backend)](../../../develop/rust/wasinn/whisper.md) | AI inference using Whisper models. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.14.1`) | [Rust](https://github.com/second-state/wasmedge-wasi-nn) | [Steps](../../../contribute/source/plugin/wasi_nn.md#build-wasmedge-with-wasi-nn-whisper-backend) | | [WASI-NN](https://github.com/WebAssembly/wasi-nn) Burn.rs backend (Squeezenet) | AI inference using Squeezenet models in Burn.rs. | `ubuntu 20.04 (x86_64)`
(since `0.14.1`) | [Rust](https://github.com/second-state/wasmedge-wasi-nn) | | | [WASI-NN](https://github.com/WebAssembly/wasi-nn) Burn.rs backend (Whisper) | AI inference using Whisper models in Burn.rs. | `ubuntu 20.04 (x86_64)`
(since `0.14.1`) | [Rust](https://github.com/second-state/wasmedge-wasi-nn) | | -| WasmEdge-ffmpeg | FFmpeg-based audio and video processing for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.14.0`) | Rust | [Steps](../../../contribute/source/plugin/wasmedge_ffmpeg.md) | +| WasmEdge-FFmpeg | FFmpeg-based audio and video processing for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.14.0`) | Rust | [Steps](../../../contribute/source/plugin/wasmedge_ffmpeg.md) | | [WasmEdge-Image](../../../contribute/source/plugin/image.md) | A native library to manipulate images for AI inference tasks. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | [Rust](https://crates.io/crates/wasmedge_tensorflow_interface) (0.3.0) | [Steps](../../../contribute/source/plugin/image.md) | | WasmEdge-LLMC | | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
(since `0.14.1`) | | | -| WasmEdge-OpenCV | Very popular utility functions to process images and videos for AI input/output. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.3`) | Rust | [Steps](../../../contribute/source/plugin/wasmedge_opencvmini.md) | +| WasmEdge-OpenCVMini | A subset of OpenCV utility functions for image/video pre- and post-processing in AI workloads. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.3`) | Rust | [Steps](../../../contribute/source/plugin/wasmedge_opencvmini.md) | | [WasmEdge-Process](../../../contribute/source/plugin/process.md) | 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, aarch64)`
`ubuntu 20.04 (x86_64)`
(since `0.10.0`) | [Rust](https://crates.io/crates/wasmedge_process_interface) | [Steps](../../../contribute/source/plugin/process.md) | | WasmEdge-StableDiffusion | Image generation and inference using Stable Diffusion models. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.14.1`) | Rust | [Steps](../../../contribute/source/plugin/wasmedge_stablediffusion.md) | | [WasmEdge-Tensorflow](../../../contribute/source/plugin/tensorflow.md) | A native library for inferring TensorFlow models.| `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | [Rust](https://crates.io/crates/wasmedge_tensorflow_interface) (0.3.0) | [Steps](../../../contribute/source/plugin/tensorflow.md) | | [WasmEdge-TensorflowLite](../../../contribute/source/plugin/tensorflowlite.md)| A native library for inferring TensorFlow-Lite models. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | [Rust](https://crates.io/crates/wasmedge_tensorflow_interface) (0.3.0) | [Steps](../../../contribute/source/plugin/tensorflowlite.md) | | WasmEdge-zlib | zlib compression and decompression for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.5`) | Rust | [Steps](../../../contribute/source/plugin/wasmedge_zlib.md) | -| [WASI-HTTP](../../../contribute/source/plugin/wasi_http.md) | HTTP client and server support for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)` | Rust | [Steps](../../../contribute/source/plugin/wasi_http.md) | -| [WASI-Poll](../../../contribute/source/plugin/wasi_poll.md) | Polling API for asynchronous I/O in WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)` | Rust | [Steps](../../../contribute/source/plugin/wasi_poll.md) | -| [Wasm-BPF](../../../contribute/source/plugin/wasm_bpf.md) | eBPF program development and execution for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)` | Rust | [Steps](../../../contribute/source/plugin/wasm_bpf.md) | -| [WasmEdge-OCR](../../../contribute/source/plugin/wasmedge_ocr.md) | Optical character recognition for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)` | Rust | [Steps](../../../contribute/source/plugin/wasmedge_ocr.md) | +| [WASI-HTTP](../../../contribute/source/plugin/wasi_http.md) | HTTP client and server support for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | Rust | [Steps](../../../contribute/source/plugin/wasi_http.md) | +| [WASI-Poll](../../../contribute/source/plugin/wasi_poll.md) | Polling API for asynchronous I/O in WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | Rust | [Steps](../../../contribute/source/plugin/wasi_poll.md) | +| [Wasm-BPF](../../../contribute/source/plugin/wasm_bpf.md) | eBPF program development and execution for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
(since `0.13.2`) | Rust | [Steps](../../../contribute/source/plugin/wasm_bpf.md) | +| [WasmEdge-OCR](../../../contribute/source/plugin/wasmedge_ocr.md) | Optical character recognition for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | Rust | [Steps](../../../contribute/source/plugin/wasmedge_ocr.md) | | [WasmEdge-eBPF](../../../contribute/source/plugin/ebpf.md) | A native library for inferring eBPF applications | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
(since `0.13.2`) | Rust | [Steps](../../../contribute/source/plugin/ebpf.md) | | [WasmEdge-rustls](../../../contribute/source/plugin/rusttls.md) (DEPRECATED) | A native library for inferring Rust and TLS Library | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`, until `0.13.5`) | [Rust](https://crates.io/crates/wasmedge_rustls_api) | [Steps](../../../contribute/source/plugin/rusttls.md) | From dd27ff96253a2e6442f502cbaeaf3ebad4abd5e7 Mon Sep 17 00:00:00 2001 From: Ankit Date: Tue, 23 Jun 2026 14:35:03 +0530 Subject: [PATCH 07/10] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Ankit --- docs/contribute/source/plugin/wasi_http.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contribute/source/plugin/wasi_http.md b/docs/contribute/source/plugin/wasi_http.md index d606b9e5..1560e94d 100644 --- a/docs/contribute/source/plugin/wasi_http.md +++ b/docs/contribute/source/plugin/wasi_http.md @@ -19,6 +19,7 @@ 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. ::: From f907924ccca9ecc95c50b60898055c1f08257f16 Mon Sep 17 00:00:00 2001 From: Ankit Ram Date: Tue, 23 Jun 2026 14:40:17 +0530 Subject: [PATCH 08/10] docs: add prettier-ignore markers and fix zlib casing Signed-off-by: Ankit Ram --- docs/contribute/source/build_from_src.md | 2 +- docs/contribute/source/plugin/wasi_poll.md | 1 + docs/contribute/source/plugin/wasm_bpf.md | 2 ++ docs/contribute/source/plugin/wasmedge_ffmpeg.md | 1 + docs/contribute/source/plugin/wasmedge_ocr.md | 1 + docs/contribute/source/plugin/wasmedge_opencvmini.md | 1 + 6 files changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/contribute/source/build_from_src.md b/docs/contribute/source/build_from_src.md index e2ded165..1f8142e0 100644 --- a/docs/contribute/source/build_from_src.md +++ b/docs/contribute/source/build_from_src.md @@ -106,7 +106,7 @@ Developers can follow the steps to build WasmEdge with plug-ins from source. - [WasmEdge-OCR](plugin/wasmedge_ocr.md) - [WasmEdge-OpenCVMini](plugin/wasmedge_opencvmini.md) - [WasmEdge-StableDiffusion](plugin/wasmedge_stablediffusion.md) -- [WasmEdge-Zlib](plugin/wasmedge_zlib.md) +- [WasmEdge-zlib](plugin/wasmedge_zlib.md) ## Run Tests diff --git a/docs/contribute/source/plugin/wasi_poll.md b/docs/contribute/source/plugin/wasi_poll.md index 03862bbf..b72f5be9 100644 --- a/docs/contribute/source/plugin/wasi_poll.md +++ b/docs/contribute/source/plugin/wasi_poll.md @@ -19,6 +19,7 @@ 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. ::: diff --git a/docs/contribute/source/plugin/wasm_bpf.md b/docs/contribute/source/plugin/wasm_bpf.md index f78ad09d..434d6a36 100644 --- a/docs/contribute/source/plugin/wasm_bpf.md +++ b/docs/contribute/source/plugin/wasm_bpf.md @@ -15,6 +15,7 @@ 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. ::: @@ -30,6 +31,7 @@ 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. ::: diff --git a/docs/contribute/source/plugin/wasmedge_ffmpeg.md b/docs/contribute/source/plugin/wasmedge_ffmpeg.md index 666999ed..71cb9787 100644 --- a/docs/contribute/source/plugin/wasmedge_ffmpeg.md +++ b/docs/contribute/source/plugin/wasmedge_ffmpeg.md @@ -35,6 +35,7 @@ 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. ::: diff --git a/docs/contribute/source/plugin/wasmedge_ocr.md b/docs/contribute/source/plugin/wasmedge_ocr.md index c806f63f..905be8b8 100644 --- a/docs/contribute/source/plugin/wasmedge_ocr.md +++ b/docs/contribute/source/plugin/wasmedge_ocr.md @@ -34,6 +34,7 @@ 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. ::: diff --git a/docs/contribute/source/plugin/wasmedge_opencvmini.md b/docs/contribute/source/plugin/wasmedge_opencvmini.md index 11bfaf7f..37ac5f10 100644 --- a/docs/contribute/source/plugin/wasmedge_opencvmini.md +++ b/docs/contribute/source/plugin/wasmedge_opencvmini.md @@ -34,6 +34,7 @@ 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. ::: From 125ab01eca38546675c31261ab662c902a6074fa Mon Sep 17 00:00:00 2001 From: Ankit Ram Date: Wed, 24 Jun 2026 14:50:27 +0530 Subject: [PATCH 09/10] docs: fix apt command in gc.md and add cmake note to build guide Signed-off-by: Ankit Ram --- docs/contribute/source/build_from_src.md | 2 ++ docs/start/wasmedge/extensions/gc.md | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/contribute/source/build_from_src.md b/docs/contribute/source/build_from_src.md index 1f8142e0..189f9d10 100644 --- a/docs/contribute/source/build_from_src.md +++ b/docs/contribute/source/build_from_src.md @@ -108,6 +108,8 @@ Developers can follow the steps to build WasmEdge with plug-ins from source. - [WasmEdge-StableDiffusion](plugin/wasmedge_stablediffusion.md) - [WasmEdge-zlib](plugin/wasmedge_zlib.md) +> Note: Each plug-in guide above includes the corresponding `-DWASMEDGE_PLUGIN_*` CMake option. + ## Run Tests The tests are only available when the build option `WASMEDGE_BUILD_TESTS` is set to `ON`. diff --git a/docs/start/wasmedge/extensions/gc.md b/docs/start/wasmedge/extensions/gc.md index eecdacc0..8f85b5ae 100644 --- a/docs/start/wasmedge/extensions/gc.md +++ b/docs/start/wasmedge/extensions/gc.md @@ -20,7 +20,8 @@ This is enabled by default in WasmEdge since `0.16.0`. For WasmEdge `0.14.x`–` Install WABT on Linux: ```bash -apt install wabt +sudo apt update +sudo apt install -y wabt ``` Or on macOS: From a805e2161745739e2662c77f0c8c7846088654f6 Mon Sep 17 00:00:00 2001 From: Ankit Ram Date: Sun, 28 Jun 2026 16:35:50 +0530 Subject: [PATCH 10/10] fix: update build-from-source links to general guide and upstream WASI spec links --- docs/contribute/source/plugin/wasi_http.md | 2 +- docs/contribute/source/plugin/wasi_poll.md | 2 +- docs/contribute/source/plugin/wasmedge_ffmpeg.md | 2 +- docs/contribute/source/plugin/wasmedge_ocr.md | 2 +- docs/contribute/source/plugin/wasmedge_opencvmini.md | 2 +- docs/contribute/source/plugin/wasmedge_stablediffusion.md | 2 +- docs/contribute/source/plugin/wasmedge_zlib.md | 2 +- docs/start/wasmedge/extensions/plugins.md | 4 ++-- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/contribute/source/plugin/wasi_http.md b/docs/contribute/source/plugin/wasi_http.md index 1560e94d..7d4c9ed1 100644 --- a/docs/contribute/source/plugin/wasi_http.md +++ b/docs/contribute/source/plugin/wasi_http.md @@ -8,7 +8,7 @@ The WASI-HTTP plug-in provides an implementation of the [WASI HTTP proposal](htt ## 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`. +To enable the WasmEdge WASI-HTTP plug-in, developers need to [build WasmEdge from source](../build_from_src.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. diff --git a/docs/contribute/source/plugin/wasi_poll.md b/docs/contribute/source/plugin/wasi_poll.md index b72f5be9..76242f4a 100644 --- a/docs/contribute/source/plugin/wasi_poll.md +++ b/docs/contribute/source/plugin/wasi_poll.md @@ -8,7 +8,7 @@ The WASI-Poll plug-in provides an implementation of the [WASI Poll proposal](htt ## 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`. +To enable the WasmEdge WASI-Poll plug-in, developers need to [build WasmEdge from source](../build_from_src.md) with the cmake option `-DWASMEDGE_PLUGIN_WASI_POLL=ON`. The WASI-Poll plug-in has no external dependencies beyond the WasmEdge runtime itself. diff --git a/docs/contribute/source/plugin/wasmedge_ffmpeg.md b/docs/contribute/source/plugin/wasmedge_ffmpeg.md index 71cb9787..83ac4409 100644 --- a/docs/contribute/source/plugin/wasmedge_ffmpeg.md +++ b/docs/contribute/source/plugin/wasmedge_ffmpeg.md @@ -26,7 +26,7 @@ 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`. +To enable the WasmEdge-FFmpeg plug-in, developers need to [build WasmEdge from source](../build_from_src.md) with the cmake option `-DWASMEDGE_PLUGIN_FFMPEG=ON`. ```bash cd diff --git a/docs/contribute/source/plugin/wasmedge_ocr.md b/docs/contribute/source/plugin/wasmedge_ocr.md index 905be8b8..d293adcb 100644 --- a/docs/contribute/source/plugin/wasmedge_ocr.md +++ b/docs/contribute/source/plugin/wasmedge_ocr.md @@ -25,7 +25,7 @@ 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`. +To enable the WasmEdge-OCR plug-in, developers need to [build WasmEdge from source](../build_from_src.md) with the cmake option `-DWASMEDGE_PLUGIN_OCR=ON`. ```bash cd diff --git a/docs/contribute/source/plugin/wasmedge_opencvmini.md b/docs/contribute/source/plugin/wasmedge_opencvmini.md index 37ac5f10..6145b13b 100644 --- a/docs/contribute/source/plugin/wasmedge_opencvmini.md +++ b/docs/contribute/source/plugin/wasmedge_opencvmini.md @@ -25,7 +25,7 @@ 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`. +To enable the WasmEdge-OpenCVMini plug-in, developers need to [build WasmEdge from source](../build_from_src.md) with the cmake option `-DWASMEDGE_PLUGIN_OPENCVMINI=ON`. ```bash cd diff --git a/docs/contribute/source/plugin/wasmedge_stablediffusion.md b/docs/contribute/source/plugin/wasmedge_stablediffusion.md index f1b64404..98263d63 100644 --- a/docs/contribute/source/plugin/wasmedge_stablediffusion.md +++ b/docs/contribute/source/plugin/wasmedge_stablediffusion.md @@ -31,7 +31,7 @@ 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`. +To enable the WasmEdge Stable Diffusion plug-in, developers need to [build WasmEdge from source](../build_from_src.md) with the cmake option `-DWASMEDGE_PLUGIN_STABLEDIFFUSION=ON`. ```bash cd diff --git a/docs/contribute/source/plugin/wasmedge_zlib.md b/docs/contribute/source/plugin/wasmedge_zlib.md index ad0f50fb..ea29c61d 100644 --- a/docs/contribute/source/plugin/wasmedge_zlib.md +++ b/docs/contribute/source/plugin/wasmedge_zlib.md @@ -25,7 +25,7 @@ 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`. +To enable the WasmEdge zlib plug-in, developers need to [build WasmEdge from source](../build_from_src.md) with the cmake option `-DWASMEDGE_PLUGIN_ZLIB=ON`. ```bash cd diff --git a/docs/start/wasmedge/extensions/plugins.md b/docs/start/wasmedge/extensions/plugins.md index d1824b5c..a063008d 100644 --- a/docs/start/wasmedge/extensions/plugins.md +++ b/docs/start/wasmedge/extensions/plugins.md @@ -33,8 +33,8 @@ The following lists are the WasmEdge official released plug-ins. Users can insta | [WasmEdge-Tensorflow](../../../contribute/source/plugin/tensorflow.md) | A native library for inferring TensorFlow models.| `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | [Rust](https://crates.io/crates/wasmedge_tensorflow_interface) (0.3.0) | [Steps](../../../contribute/source/plugin/tensorflow.md) | | [WasmEdge-TensorflowLite](../../../contribute/source/plugin/tensorflowlite.md)| A native library for inferring TensorFlow-Lite models. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | [Rust](https://crates.io/crates/wasmedge_tensorflow_interface) (0.3.0) | [Steps](../../../contribute/source/plugin/tensorflowlite.md) | | WasmEdge-zlib | zlib compression and decompression for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.5`) | Rust | [Steps](../../../contribute/source/plugin/wasmedge_zlib.md) | -| [WASI-HTTP](../../../contribute/source/plugin/wasi_http.md) | HTTP client and server support for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | Rust | [Steps](../../../contribute/source/plugin/wasi_http.md) | -| [WASI-Poll](../../../contribute/source/plugin/wasi_poll.md) | Polling API for asynchronous I/O in WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | Rust | [Steps](../../../contribute/source/plugin/wasi_poll.md) | +| [WASI-HTTP](https://github.com/WebAssembly/wasi-http) | HTTP client and server support for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | Rust | [Steps](../../../contribute/source/plugin/wasi_http.md) | +| [WASI-Poll](https://github.com/WebAssembly/wasi-poll) | Polling API for asynchronous I/O in WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | Rust | [Steps](../../../contribute/source/plugin/wasi_poll.md) | | [Wasm-BPF](../../../contribute/source/plugin/wasm_bpf.md) | eBPF program development and execution for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
(since `0.13.2`) | Rust | [Steps](../../../contribute/source/plugin/wasm_bpf.md) | | [WasmEdge-OCR](../../../contribute/source/plugin/wasmedge_ocr.md) | Optical character recognition for WebAssembly applications. | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
`darwin (x86_64, arm64)`
(since `0.13.0`) | Rust | [Steps](../../../contribute/source/plugin/wasmedge_ocr.md) | | [WasmEdge-eBPF](../../../contribute/source/plugin/ebpf.md) | A native library for inferring eBPF applications | `manylinux2014 (x86_64, aarch64)`
`ubuntu 20.04 (x86_64)`
(since `0.13.2`) | Rust | [Steps](../../../contribute/source/plugin/ebpf.md) |