Need help with wasm?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

solo-io
247 Stars 38 Forks Apache License 2.0 217 Commits 57 Opened issues

Description

Web Assembly tools and SDKs for extending cloud-native infrastructure

Services available

!
?

Need anything else?

Contributors list

logo

WebAssembly (WASM) is the future of cloud-native infrastructure extensibility.

WASM is a safe, secure, and dynamic way of extending infrastructure with the language of your choice. WASM tool chains compile your code from any of the supported languages into a type-safe, binary format that can be loaded dynamically in a WASM sandbox/VM.

In this repo, you will find tooling, SDKs, an OCI-compatible specification, and examples for working with WASM and specifically WASM on Envoy Proxy based frameworks (like Gloo API Gateway or Istio Service Mesh -- but not limited to those).

One of the projects for working with WASM and Envoy proxy is WebAssembly Hub.

WebAssembly Hub is a meeting place for the community to share and consume WebAssembly Envoy extensions. You can easily search and find extensions that meet the functionality you want to add and give them a try.

Please see the announcement blog that goes into more detail on the motivation for WebAssembly Hub and how we see it driving the future direction of Envoy-based networking projects/products including API Gateways and Service Mesh.

In this Repo

Specification

In the /spec folder of this repo, you'll find an OCI image specification for WebAssembly modules. This specification is an extension to OCI and describes how a WASM module is packaged with the appropriate metadata so that it can be distributed and loaded into Envoy-based frameworks/service meshes. For example, some of the metadata include the root-id of the module, the ABI versions that are targeted in Envoy, and basic name of the module. Please see the spec for more details.

SDKs

In the /sdks folder of this repo, you'll find a listing of the available SDKs for building Envoy Proxy based WASM modules. These SDKs implement the Envoy hooks for Envoy extension points in a language-specific way. The following exist today (with more on the way):

  • C++
  • Rust
  • AssemblyScript
  • TinyGo

Tools

In the /tools folder, you'll find a set of tools for working with WASM modules. Specifically, tools to do the following:

  • Bootstrap a new WASM project with boilerplate/version alignment/tool chain
  • Test that a WASM module can correctly be loaded into Envoy
  • Build your project with the specific tool chain
  • Publish your WASM module as a WASM OCI image to an OCI-compatible registry or WebAssembly Hub
  • Load your WASM module into an Envoy-based framework like Gloo or Istio

Other Resources

Community

The WASM projects in this repository are made up of a collaboration between Solo.io and the wider WebAssembly community.

Please join the Solo.io Slack @ #wasm to participate!

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.