Hello dear reader, apologies for the tardiness of this issue, the last one was three weeks ago. I’m not exactly living up the the ‘weekly’ name given to this newsletter. But hey, everyone needs a holiday sometimes!

AI on a cloud native WebAssembly runtime (WasmEdge)

MEDIUM.COM

This article provides a fantastic demonstration of how to run machine learning models using the edge computing paradigm, powered by WebAssembly.

classification

The author uses WasmEdge a runtime that is supported by the Cloud Native Computing Foundation (CNCF), that claims to be the fastest WebAssembly VM. As well as supporting the WebAssembly System Interface (WASI), it also provides an API for TensorFlow, Google’s popular AI / machine learning library. This article provides a step-by-step introduction to training a model and deploying it to TensorFlow Lite, a network specifically designed for resource-constrained on-device deployment.

Experimenting with Dart and Wasm

MEDIUM.COM

Dart is a relatively new language, introduced by Google in 2011. It is an object-oriented, class-based, garbage-collected language with C-style syntax. Google’s original plan for Dart was that it would run within the browser via its own VM. However, this idea failed to gain traction (i.e. the other browser vendors didn’t want to adopt Google’s language!), and in 2015 they pivoted to support a model where Dart was compiled to JavaScript, late they also added support for compilation to native code.

At the moment Dart seems to have found most success in mobile application development, where it is often used with the popular Flutter UI library.

There is currently work underway to support compilation of Dart to WebAssembly, however, in common with C# and Java, Dart needs a Garbage Collector, something which the WebAssembly runtime doesn’t support at the moment. There is currently a proposal in active development to add Garbage Collection capabilities to WebAssembly and the Dart team are experimnting with this feature in their own WebAssembly implementation.

It’s great to see another language being added WebAssembly, and the overall capabilities of the runtime improving as a result.

Porting a C++ Rendering Engine to WebAssembly

MEDIUM.COM

This post shares the experience or compiled a 15,000 lines of code, rendering engine (that is part of an open source robot simulator!) from C++ to WebAssembly. A fantastic resource for anyone who is looking to port their C++ code to WebAssembly.

NuGet Package Explorer is now a Web App powered by Uno Platform

PLATFORM.UNO

Uno Platform is an alternative to Microsoft’s Blazor, providing tooling for compiling C# / XAML application to WebAssembly. In this blog post they demo Uno via porting the Nuget package explorer to WebAssembly, allowing it to run in the browser rather than the desktop. While this does look like a good result, some people did express concerns about the overall payload size.

Fluid simulation in liquidfun-wasm

BIRCHLABS.CO.UK

This is a fun WebAssembly experiment - it even has ‘fun’ in the name! LiquidFun is a Google project that adds fluid simulation to the popular Box2D physics engine. Alex has already ported Box2D to WebAssembly, this page demonstrated the latest release which adds LiquidFun into the mix.