头图

WasmEdge runtime (formerly known as SSVM) is a lightweight and high-performance WebAssembly (WASM) virtual machine optimized for the edge. WasmEdge can be applied to a variety of scenarios such as severless cloud functions, SaaS, blockchain smart contracts, the Internet of Things, and automotive real-time software applications.

WasmEdge was recently accepted as a sandbox project by the CNCF Foundation. This is the world's first open source WebAssembly runtime project to be hosted by CNCF. It is foreseeable that WasmEdge, as the mission critical lightweight runtime of the edge cloud, will play an important role in the open source cloud computing field of CNCF.

Source code: https://github.com/WasmEdge/WasmEdge

start

Twenty-five years ago, the Java programming language was first invented as a browser widget. But Java ultimately succeeded on the server side. Later, JavaScript repeated the same migration path from browser to server/cloud through Node.js. Today, once again, WebAssembly is migrating from the browser to the cloud. WasmEdge has come to the forefront in this historic migration.

History is always similar, but it never repeats itself. Although the driving factors for WebAssembly's migration from browsers to the cloud are the same as the previous Java and JavaScript, such as the popular programming language (Rust) adopted by young developers, but more importantly, WebAssembly is also very suitable for modern cloud computing tasks. . In particular, the lightweight design and advanced security model of WebAssembly, coupled with the memory security of the Rust language, make it well suited for high-performance and mission-critical applications on the cloud. Especially in the edge cloud, Internet of Things devices and cars. Traditional containers and virtual machines are too bulky and slow, and WebAssembly may become the leading runtime technology.

WasmEdge, formerly known as SSVM, is an open source WebAssembly virtual machine optimized for edge devices. According to a research paper published in IEEE Software magazine, WasmEdge has advanced AOT compiler support and is the fastest runtime on the market today.

Key features of

WasmEdge is fully compatible with the W3C WebAssembly standard. Out of the box, it is supported by standard languages and compiler tool chains, such as LLVM, Rustc, and emscripten. The difference of WasmEdge lies in its support for standard and non-standard extensions, especially those related to edge computing.

First, WasmEdge supports W3C optional WebAssembly features and proposals, such as WebAssembly System Interface (WASI) specifications, reference types, mass memory operations, and SIMD. WasmEdge is also exploring wasi-socket proposal to support network access in WebAssembly programs.

In addition, WasmEdge supports non-standard extensions designed for specific application scenarios.

  • Tensorflow . Developers can use the simple Rust API to write Tensorflow inference functions, and then run the function safely at native speed inside WasmEdge. We are also working hard to support other AI frameworks. (Welcome to join the WasmEdge community)
  • Storage . WasmEdge storage interface allows WebAssembly programs to read and write key-value storage.
  • command interface . WasmEdge allows Webassembly functions to execute native commands of the host operating system. It supports security policies for passing parameters, environment variables, STDIN/STDOUT pipes and host access.
  • . The WasmEdge Ewasm extension supports Ethereum smart contracts compiled into WebAssembly. It is the leading implementation of Ethereum-style WebAssembly (Ewasm).
  • Substrate . Pallet allows WasmEdge to act as an Ethereum smart contract execution engine on any Substrate-based blockchain.

Finally, WasmEdge is a cloud-native WebAssembly VM. It supports the OCI (Open Container Project) specification, which enables cloud-native orchestration tools like Kubernetes to manage WasmEdge instances.


WasmEdge was previously named SSVM.

Application scenario

WasmEdge is optimized for edge and embedded application scenarios. It can transform software and hardware products into a developer platform. The following are some specific application scenarios.

  • Jamstack application consists of a static front-end with JavaScript used to interact with the back-end API. This is the most popular modern web application architecture. front-end static files of 160b9e1a5f25b0 can be distributed through CDN, and the back-end functions can be hosted on edge nodes. The cloud-based WasmEdge hosts secure and high-performance backend serverless functions for the Jamstack app, especially on the edge cloud.

  • SaaS application often needs to be adjusted or customized for "edge scenes" according to customer requirements. With WasmEdge, SaaS applications can directly embed and execute user-submitted code as part of the workflow (for example, as a callback function for handling events from the SaaS application).

  • WasmEdge has been adjusted to a variety of embedded and real-time operating systems edge devices Developers only need to write high-performance applications in Rust or C once, and they can run safely on many edge device platforms.

    • RIOS Lab example: RISC-V stack RIOS Lab.
    • In progress: Porting WasmEdge to SeL4 real-time operating system
    • Plans: WasmEdge can be used as RTOS code runtime for software modules in autonomous vehicles.
  • smart contract The code submitted by the user is executed by all nodes in the network. WasmEdge was adopted by the head of the blockchain project as a smart contract execution engine. EWASM smart contract on Substrate and Polkadot.

Looking to the future

The WebAssembly ecosystem is still in its early stages. WasmEdge is hosted by CNCF and aims to be an open source "reference implementation" of WebAssembly and its edge-related extensions. The community can first experiment with new extension ideas on WasmEdge, and then standardize successful extensions. The WasmEdge community will also contribute to the compiler toolchain and SDK to support WebAssembly and WasmEdge extensions that allow more programming languages.

Join our WebAssembly revolution!

👉 Slack group: Join CNCF slack channel , search WasmEdge to join WasmEdge Slack Channel.

👉 Subscribe to email: send an email to WasmEdge@googlegroups.com

👉 Become a contributor: View the contribution inspiration list Start contributing to WasmEdge


WASM中文社区
169 声望162 粉丝