The State of WebAssembly in Envoy Proxy

SOLO.IO

Envoy is an open source proxy that was developed by Lyft and is now quite widely used in various edge and cloud native product, for example the Istio service mesh. Envoy itself is written in C++ and has various extension points for plugins. This blog post describes how the WebAssembly runtime is being used as a sandboxed, multi-language runtime for people to write Envoy modules, which they can then share via the WebAssembly Hub.

WebAssembly Hub

The blog post digs into some of the technical details involved, the creation of an Abstract Binary Interface (ABI) that defines the interface between the C++ proxy code and the wasm runtime, and the more user-friendly language SDKs. It’s really great to see WebAssembly becoming a central part of the Envoy ecosystem.

The solo.io founder has also appeared on a podcast this week, talking about his vision for WebAssembly.

Full Stack Fortan

GITHUB.COM

It seems like all the mainstream languages now support WebAssembly to a greater or lesser extent. So what’s left to do? Wikipedia lists 876 programming languages, so there is always more work to do. This GitHub project provides a compiler toolchain for Fortran, a language dating back to 1950s, where your code would have been stamped onto punchcards. Depsite its age, it is still used quite a bit in the scientific community, and now that can run their code on WebAssembly.

Let’s build a Cloudflare Worker with WebAssembly and Haskell

CLOUDFLARE.COM

CloudFlare appear to be on a mission to bring every language possible to their Worker (cloud functions) platform. A few months ago they announced COBOL support, and in this latest post they look at running Haskell. If you’ve not come across this language before, it is a pure functional language, that is often used to teach functional programming concepts at College or University.

Go, WebAssembly, HTTP requests and Promises

WITHBLUE.INK

The author of this blog has been using WebAssembly port prvt, an open source project for storing end-to-end encrypted document, to run in the browser. The reason for this WebAssembly experiment are two-fold: first, prvt makes extensive uses of cryptography and streams, both things which are not yet great in JavaScript; second, prvt itself is written in Go, so being able to re-use code in the browser would significantly simplify development. A very practical use of WebAssembly and an interesting blog post.

And Finally

Retro games? thanks WebAssembly, we’ve got plenty.