Embedded WebAssembly on a D1 Mini with WASM3

NISHTAHIR.COM

I’ve heard that WebAssembly is gaining traction within IoT / embedded systems, but I must admit I’ve not seen many blog posts on the topic. This is a really interesting and practical post that shows hwo to use the WASM3 runtime on a D1 mini to run WebAssembly code.

WASM3 is a WebAssembly interpreter. It is designed for application where performance is not the primary concerned. When compared to other runtmies which tend to use JIT compilation, it is much simpler and results in a smaller executable. In this post the author looks at how to set up a WASM3 runtime on a D1 mini, a cheap WiFi-enabled Arduino compatible device.

d1-mini

The final project simply blinks an LED, using a program written in Rust and compiled to WebAssembly. A great starting point for anyone interested in using wasm on embedded systems.

Lapce - a new code editor written in Rust

LAPCE.DEV

This looks really cool, a new code editor written in Rust, promising speed and flexibility. Notably, Lapce has a WebAssembly-based plugin model - you can write extensions using WebAssembly / WASI.

The documentation is a bit light at the moment, I couldn’t actually find instructions on how to write a plugin. If anyone gives it a go, please do share your findings.

PartialExecuter: Reducing WebAssembly size by exploring all executions in LLVM

MEDIUM.COM

The team at Leaning Technologies are creating some really amazing things with WebAssembly. A few weeks ago I shared WebVM, their browser-based host for x86 applications, allowing you to run them via some very clever x86-to-wasm JIT compilation.

As you can imagine, the team is often working with compiler technology. In this post they share some clever optimisations that can be achieved via LLVM (the compiler toolchain used both by Emscripten and Cheerp) using partial execution to identify dead code.

To The Browser And Beyond: WebAssembly Gets It Right

FORRESTOR.COM

I typically don’t bother covering articles by ‘analysts’. There’s nothing wrong with them, however, I prefer delving into the details rather high-level statements. Still, it’s good to see that Forrester, Gartner and others are still expecting big things from WebAssembly.

Rust WebAssembly OCR experiments

HUGOEIXOTO.NET

A fun post where Hugo uses OCR (optical character recognition) techniques to automate the process of transferring scores from pokédex to Cyberscore. I’m not entirely sure what that means, but it still looks like a fun project. In this instance, the characters are computer rendered and quite consistent (compared to hand-written numbers), as a result, character recognition was performed by template matching rather than using more complex neural network approaches.

And Finally …

WebAssembly has a new Twitter community.