Rust to WebAssembly the hard way


This fantastic blog post gives a real deep-dive into how Rust compiles to WebAssembly, putting the tooling to one side and looking under the hood. The post starts with the ‘hello world’ of WebAssembly, an application that exports an add function, using this as a way to introduce ABIs, imports, high-level types and a whole lot more. Even if you have no intebtion to learn or use Rust, you’ll learn a lot about WebAssembly via this post.

SQLite WASM: Something subtle in your browser


SQLite is a simple, and very lightweight SQL database, written in C and backed by a single file. It’s not designed for scaling at the back-end, rather, it is most often used as an embedded SQL database in the client. You’ll find it in all sorts of places, Firefox, iOS, etc …

Wth WebAssembly it is possible to compile SQLlite into a small (780k) wasm module, allowing you to run it client-side. This blog post explores how this can be used to create client-side full text search capabilities.

Bringing Javascript to WebAssembly for Shopify Functions


WebAssembly is ideally suited to languages that are statically typed, and don’t require a garbage collector. Two things that are not true for JavaScript!

In the early days of WebAssembly, when it was mostly being used within the browser, this wasn’t a limitation. The browser already runs JavaScript code, and has done for the past 25 years. However, now that WebAssembly is being used as something of a universal runtime, there is a genuine need to run JavaScript applications on this platform.

Recently a number of efforts have been made to compile lightweight JavaScript VMs to WebAssembly, so that JavaScript applications can be run on a VM which itself runs on WebAssembly. Thsi blog post shared the progress Shopify are making in this direction, bringing it to production.

WASI language support


Last week I attended a conference where I dropped into a session talking about confidential computing. I wasn’t expecting this talk to have anything to do with WebAssembly, so imagine my surprise when the speaker referenced Enarx, an open source WebAssembly runtime for executing workloads in confidential environments.

This is a link to one of their recent blog posts, which provides some additional analysis on the State of WebAssembly report i published last year.

The State of WebAssembly – 2022 and 2023


Talking of the state of WebAssembly, here’s a quick review of the important events from 2022 and a look ahead to 2023.