Solo.io WebAssembly updates v0.0.30 – Rust and TinyGo support and more
At Solo.io, we’ve been working for the past year with WebAssembly (Wasm) and with how it can be used to customize the behavior of Envoy proxy and Envoy based solutions. Wasm is an exciting new technology born from the need to support compatibility for client side application deployments and has tremendous potential for the server (infrastructure and application) side as well. WASM is a safe, secure, and dynamic way of extending infrastructure with the language of your choice.
We’ve developed wasme CLI which provides a Docker-like experience to build, push, pull, deploy wasm modules to running Envoy proxies and WebAssembly Hub, a hosted registry to share wasm modules with the community. Since the 0.0.26 release in August, we’ve been busy adding support for more languages and versions.
Highlights of the 0.0.30 release include the following:
- Rust and TinyGo: wasme CLI has added the ability to build filters in Rust and TinyGo as wasm modules. Additionally we’ve updated support across the target environments like Gloo and Istio (#143, #211, #209, #145, #184).
- Gloo Enterprise Support: We’ve added support for wasm in the enterprise version of our popular Envoy Proxy based API gateway and ingress controller (#3035).
- Expanded Istio Support: These past few releases have focused on bringing support in the wasme client to write filters in C++, AssemblyScript, Rust, and TinyGo for Istio versions 1.5.x – 1.8.x (#145, #184, #209).
- Add Podman support for build: This release adds more OCI based build options by adding pod man support to build images instead of Docker using the WASME_USE_PODMAN environment variable (#165).
- Disable ABI version check: This new flag –ignore-version-check allows using wasme to deploy an image to an unsupported platform/version combo. As an optional flag, it can potentially remove hindrances to the filter development process (#68)
To date, the development around WebAssembly support in Envoy Proxy has been happening in a separate repo as the community has been working to mature and stabilize it. What’s exciting is that this work has been officially merged upstream and is planned to be included in the 1.17 release. Read more about the history and state of wasm in Envoy in this blog post by Christian and Yuval.
Very excited to announce that WASM support has landed upstream in @EnvoyProxy! Though we don’t have docs yet (planned for 1.17), this is a fantastic milestone and a herculean effort by the folks at @Google that pushed this through! 🚀🎉💥https://t.co/ZEzAbhY3dz
— Matt Klein (@mattklein123) October 9, 2020
Watch a Demo
Get an overview and demo of WebAssembly Hub and wasme CLI from the recent talk at Wasm-SF by Yuval Kohavi and Shane O’Donnell