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.
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.
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 teh scientific community, and now that can run their code on WebAssembly.
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.
Retro games? thanks WebAssembly, we’ve got plenty.