WebAssembly: Beyond the Browser

Q42.NL

Micrio, is a really cool tool for allowing users to explore ‘ultra resolution’ images via a web browser, it’s a popular tool for bringing the content within museums to life. The team behind this tool published a really cool blog post a couple of years ago, describing how they use WebAssembly on the client for image manipulation, via AssemblyScript.

With this latest post they share how their use of WebAssembly has moved to the Edge …

edge

These ultra resolution images are stored as tiles of varying resolution, with retrieval making use of the IIIF image standard. Previously Micrio had used a C#/.NET server to process requests, render tiles, and return to the client. There was a desire to move this processing closer to the user (onto the Edge), but this approach was too heavyweight.

This post shares how they were able to use Cloudflare workers, which support WebAssembly, to create “a CDN with built-in IIIF image processing”.

Wasm Builders

WASM.BUILDERS

Wasm Builders is a new community site for WebAssembly enthusiasts. I’m already seeing a few names I recognise publishing to this site, which is powered by Forem, an open source community site ‘engine’.

As an aside, the builders TLD is a new one by me!

Recommendations when publishing a Wasm library

NICKB.DEV

I’m starting to see WebAssembly cropping up within my npm dependencies more and more often, sometimes allowing the use of C++ codebases, or other times making use of specific wasm features (e.g. I used a BigInt polyfill a while back that was implemented via i64 in wasm). However, there is no standard way of packing up WebAssembly so that it is easy-to-use by JavaScript consumers.

This blog post does a great job of describing the various options and compromises, it also considers the case when your code is running outside of the browser, in Cloudflare workers for example.

Reactr

GITHUB.COM

Reactr is a “fast, performant function scheduling library” - it looks to be reasonably mature, definitely worth a look.

Video: Introduction to WAGI

YOUTUBE.COM

WAGI is a super simple WebAssembly server built around the same principles as the Common Gateway Interface (CGI), i.e. HTTP requests are fed to your modules via environment input, and responses are written via standard output. This is a very simple and effective model - I’ve given WAGI a go, both with C++ and AssemblyScript and it really is as simple as it sounds!

And Finally …

Wasmer published a post about some trademark related issues, sparking much debate on Hacker News.