The Web Almanac provides a detailed analysis of a vast quantity (8.2 million) websites. Their analysis covers a wide range of topics, including the various web technologies, user experiencing, CMS systems and more. I’ve linked directly to Chapter 6, which covers WebAssembly, in quite some detail.
They found that 0.06% of the websites they analysed use WebAssembly. Beyond just counting the number of models, they also dig into the details, to the point of listing the most frequently used WebAssembly instructions! This is some fantastic analysis and well worth reading.
We’ve seen many people adopting WebAssembly as a sandboxed execution environment, so I wasn’t surprised to see that Mozilla are using this for Firefox. Your web browser is under constant attack, which is why they have some of the most robust security models of any desktop application, with multiple layers of isolation.
What’s really interesting is that Firefox itself doesn’t ship and execute wasm modules, your browser isn’t a WebAssembly application. Instead, WebAssembly is an intermediate step in their build process. They use this to enforce certain guarantees about the various browser components. Fascinating stuff!
OpenShift is a Service Mesh, a framework for creating applications that are composed of a network of microservices. The service mesh provides features such as discovery, load balancing, monitoring and all of the other cross-cutting concerns that are associated with microservice architectures. OpenShift uses Envoy Proxy, allowing you to move functionality out of your microservice and into teh mesh itself via what is termed a ‘sidecar’. Envoy Proxy applications run on WebAssembly, taking advantage of this platform independent, sandbox and lightweight execution model.
One of the defining features of Winamp is its versatile and programmable visualiser (named Milkdrop), I recall spending many enjoyable hours creating my own ‘trippy’ effects. As part of the Webamp project, this visualisation library has been ported to WebGL. This talk describes how this project (Butterchurn!) has started using WebAssembly to provide better performance and security.
A mix of nostalgia, fun visuals, and a genuinely practical use of WebAssembly - what’s not to love?
We all know that WebAssembly has support for a wide range of languages, however, CheerpX is something a bit special. CheerpX is an emulator for the x86 processor architecture itself - allowing you to execute x86 binaries directly on a WebAssembly runtime. I’m sure there will be a great many practical applications for this tool.
A fun little game, that is just 512 bytes of WebAssembly, very cool!