Skip to main content

WasmEdge Features

WasmEdge (a sandbox project under CNCF) is a safe, fast, lightweight, portable, and extensible WebAssembly runtime.

High Performance

Taking advantage of the LLVM-based AoT compiler, WasmEdge is the fastest WebAssembly runtime on the market.

Cloud-native Extensions

Besides WASI and the standard WebAssembly proposal, WasmEdge has some cloud-native extensions.

  • Non-blocking network sockets and web services with Rust, C, and JavaScript SDK
  • MySQL-based database driver
  • Key value store
  • Gas meter for resource limitation
  • WasmEdge-bindgen for complex para passing
  • AI inference with TensorFlow, TensorFlow Lite, Pytorch, and OpenVINO

JavaScript Support

Through the WasmEdge-Quickjs project, WasmEdge could run a JavaScript program, lowering the bar for developing a WASM app.

  • ES6 module and std API support
  • NPM module support
  • Native JS API in Rust
  • Node.js API Support
  • Async networking
  • Fetch API
  • React SSR

Cloud Native orchestration

WasmEdge could be seamlessly integrated with the existing cloud-native infra.

To integrate WasmEdge with your existing cloud-native infrastructure, there are several options available for managing WASM applications as "containers" under Kubernetes. These options enables you to run Linux containers and WASM containers side by side within a Kubernetes cluster.

Option #1: is to use an OCI runtime crun (the C version of runc — mainly supported by Red Hat). crun decides whether an OCI image is WASM or Linux based on image annotations. If the image is annotated as wasm32, crun will bypass the Linux container setup and just use WasmEdge to run the image. By using crun, you can get the entire Kubernetes stack - including CRI-O, containerd, Podman, kind, micro k8s, and k8s - to work with WASM images.

Option #2 is to use a containerd-shim to start WASM "containers" via runwasi. Basically, containerd could look at the image's target platform. It uses runwasi if the image is wasm32 and runc if it is x86 / arm. This is the approach used by Docker + Wasm.

Cross Platform

WASM is Portable. The compiled wasm file could run on different hardware and platforms without any changes.

WasmEdge supports a wide range of operating systems and hardware platforms. It allows WebAssembly applications to be truly portable across platforms. It runs on Linux-like systems and microkernels such as the seL4 real-time system.

WasmEdge now supports:

Easy extensible

It is easy to build customized WasmEdge runtime with native host functions in C, Go, and Rust.

Or you could build your own plug-ins for WasmEdge in,

Easy to Embed into a Host Application

Embedded runtime is the classical use case for WasmEdge. You could embed WasmEdge functions in C, Go, Rust, Node.js, Java (WIP), and Python (WIP) host applications.