A practical guide to WebAssembly memory
The WebAssembly runtime is really rather simple, and its memory and storage capabilities are no different, it has a single block of memory with instructions that can read and write data directly. However, in practice things become quite complicated! Languages that compile to WebAssembly need to find a way to support their own memory management model (e.g. allocator, garbage collector), often added their own embedded runtime. Furthermore, WebAssembly memory is also the primary mechanism for exchanging data between WebAssembly modules and the host.
This article does a great job of walking through some of these concepts, with examples in Rust. A great guide packed full of useful infomation.
Building for a future based on WebAssembly
The Suborbital project aims to provide tools, frameworks, and a platform that makes building web services with WebAssembly useful in the real world. These tools and patterns all come together within Atmo, a serverless-style runtime. This post covers some of the design principles that have influenced Atmo - this could be a project too watch.
WebAssembly and Rust: There and Back Again
I’m convinced WebAssembly is the next big thing, and it stretches beyond the Web. Here’s my experience learning the basics with the help of Rust.
It sounds like the author of this blog has really fallen in love with WebAssembly! This post shares their first experiences of building a simple application with Rust.
Choosing Between Blazor Server or WebAssembly
Blazor is a framework of two halves, Blazor WebAssembly, which brings a .NET runtime directly into the browser, and Blazor Server, where UI interactions are fed to the server-side .NET runtime. Both frameworks offer exactly the same development experience, but have very different runtime models. This blog post compares the two.
AssemblyScript is a new language, based on TypeScript, that runs on WebAssembly. AssemblyScript has a lightweight standard library, but lacks support for Regular Expression. This is a side-project that I have been working on for the past few weeks that aims to fill that gap!