WasmCon 2023 was a jam-packed affair boasting four separate tracks and well over thirty talks, so any attempt to capture its essence is doomed to come up short. That said, we’ll do our best to summarize a few themes that we observed. Overall, one thing was as clear as the waters of French Polynesia: the Wasm tide continues to rise, promising to submerge the computing landscape at large in its warm waters. There’s something in the Wasm bag for everyone, so without further ado, let’s put on our wet suits and dive in!
Embedded Wasm on the Edge
Emily Ruppel’s keynote was a eye-opening plunge into the world of embedded, cyber-physical systems. Emily, a Bosch Research Scientist, surveys the problem space using the example of the myriad computers and sensors of a modern car, as well as industrial automation systems. The computers in these systems must interoperate with one another. However, they vary in architecture and power, and often the software is tightly coupled to the underlying hardware. Stacked on top of this are regulatory requirements, cost constraints, and let’s not forget the real-time, safety-critical nature of these systems. Wow…
Spoiler alert: Bosch Research solves these problems by creating an architecture and runtime, called Silverline, which brings lightweight virtualization, real-time aware orchestration, and a uniform communication interface into the mix. The Silverline runtime leverages WebAssembly to provide the flexibility for them to write applications once, and run them on any node within the network, regardless if it’s a Programmable Logic Controller (PLC), a low powered Electronic Control Unit (ECU), or a beefy Edge server.
It’s worth pointing out that the Silverline runtime underlies the WebAssembly Micro Runtime (“WAMR”). WAMR is a WebAssembly runtime, like Wasmtime or what you’d find in Chrome or Firefox. WebAssembly runtimes, similar to JavaScript engines, make design tradeoffs depending on their target: what architecture features to support, whether or not to include just-in-time compilation support —and if so, how many tiers based on which heuristics— and memory constraints. What’s relevant to this post, however, is that WAMR runs on embedded architecture.
We’ll stop short of restating her talk, but you really should check it out!
We continue our voyage along the Edge with Midokura’s Tatsuya Kato (“TK”) & Dan Mihai Dumitriu’s WEdge Project: Edge AI enabled by Wasm. Dan and TKさん introduce Sony’s edge AI sensing platform, AITRIOS™. Again, this application runs on constrained hardware with specific needs around security updates. Dan describes the WEdge SDK, which defines common interfaces for sensor data, communication, inferencing models, data storage, and OpenCV.
Similar to Silverline, WEdge is implemented on top of WAMR and demonstrates the success of another large manufacturer pushing WebAssembly into embedded devices while defining their own interfaces to hardware sensors. In Midokura’s case, the primary focus is running AI workloads directly on cameras, such as Sony’s IMX500™.
Wait, did someone say AI?
Pluggable Wasm
It was also apparent that the sandboxing powers of WebAssembly remain a killer feature for bringing a new wave of extensibility to the computing landscape. From developer tooling to API ecosystems to banking applications, it’s all fair game.
Rohan Deshpande showed us how Goldman Sachs is supercharging their API ecosystem with Wasm powered plug-ins that can be created and deployed by various teams within the organization. Given the size and scale of the Goldman tech infra, and the very real security and quality concerns of a top tier bank, it was impressive to see this level of flexibility applied to their operations. The platform created by Rohan’s team enables the creation of plug-ins in Go, Java, and TypeScript, while providing runtime isolation, code reuse, and application of firmwide development practices (e.g. code reviews, depedency tracking, etc.)
Developer productivity is also a focus for Dirk Bäumer, who dove into the intricate details of bringing Python, PHP, and Ruby language servers to the VSCode web interface by the power of Wasm and WASI (preview 1). Bringing this to life required the re-implementation of a virtual filesystem, complete with inodes. This is yet another example of Wasm enabling next level extensibility of applications no matter where they live (e.g. browser, cloud, etc.)
Uncharted Waters
Some talks reminded us that we are still traveling through unknown seas and that more exploration, development, and knowledge will be required in order to realize WebAssembly’s true potential.
Dylibso’s very own Ben Eckel laid out the the current problems inherent in moving Wasm sourced telemetry data across the guest / host boundary and integrating it with industry-standard Observability tooling. This is a particularly hairy problem that adds friction to the process of making Wasm production-ready. But fear not folks, Ben sketched out a compelling vision of the future that not only solves these problems but opens up new possibilities for the observability space that Wasm makes possible.
Circumnavigating a Diverse World
In order to realize the promise of this rising tide, it’s imperative that established ecosystems – including venerable programming languages and embedded hardware – have a pathway to Wasm.
Edoardo Vaachi, the Wazero Hero from Tetrate, treated us to a delightful jaunt through the internals of Wazero, a WebAssembly runtime that derives its name from its raison d’être, Wasm with zero (native) dependencies. It jettisons Cgo and its associated limitations (e.g. loss of portability, tooling, runtime issues), and provides gophers with a pure Go runtime that enables them to enjoy Wasm within the comfort of their own biome.
It leaves one to wonder what other specialized runtimes may flourish in these rich waters as the future rushes into the present. Hmmmmm.
Until Next Time
At Dylibso, we believe a rising tide lifts all ships and that our most effective role is to contribute to the overall well-being of the Wasm environment. This means offering support to those who use core Wasm by providing runtime-independent tools.
See you around!
Whether you're curious about WebAssembly or already putting it into production, we've got plenty more to share.
We are here to help, so click & let us know:
Get in touch