WebAssembly has had a hype cycle over the last few years, but much of the hype has been about running WebAssembly outside of the browser, rather than in it.
This isn't really an accident; the creators of WebAssembly were keenly aware that all software is web software now and that tech decisions made by browsers become the standard across the stack.
But for whatever reason, it seems like use cases of WebAssembly in the browser have actually been under-hyped. Last issue, I argued that WebAssembly quietly has actually succeeded on the web. I wanted a chance to hear more about in-browser use cases of WebAssembly, so a month ago we hosted a Wasm-focused Browsertech event in NYC.
A recording of the talks is online.
Carlo Francisco of Notion talked about running Sqlite in the browser using WebAssembly. When run in the browser, apps have to deal with multiple tabs attempting to access their shared OPFS storage at a time. Carlo talked about how Notion treats these tabs as a distributed system, and elects one as a leader at a time (using a SharedWorker
) to route writes through.
Kyle Barron of Development Seed talked about using Apache Arrow to share data across the JavaScript/WebAssembly boundary without copies. Kyle showed how the lonboard project used this to scale browser-based geospatial visualization to orders of magnitude what Leaflet can handle.
Sean Isom of Renderlet talked about using WebAssembly to build cross-platform 3D rendering pipelines as a cross-device rendering abstraction on top of WebGPU/wgpu.
Andrew Stein of Prospective talked about using WebAssembly for high-performance streaming data visualization. Andrew walked through a number of Wasm vs. JavaScript benchmarks, showing that our intuition is often broken around JS/Wasm performance.
I sat down with my colleague Felicia about Y-Sweet, the Yjs server we've been working on for a year and have recently been spending a lot of time on.
Browsertech events have been getting popular, and I want to make sure they don't just become another generic tech/webdev event series, so I'm curating signups a bit more, so providing some detail on the signup form will help your chances! If you've already signed up for an event and haven't heard back, feel free to reply to this email and I'll see what I can do ;)