How I built a telnet chat server in 2021 with WebAssembly

LUNATIC.SOLUTIONS

Telnet is a very old application protocol dating back to 1969, based on a simple bi-directional text communication. My first experience of Telnet was using it to ‘speak’ directly to a usenet news-server using the NNTP protocol back in the 90s. This project brings the nostalgia of Telnet back to life using Rust and the Lunatic framework.

telnet

Lunatic is a WebAssembly-based runtime for creating scalable server applications. Lunatic’s Process model capitalises on WebAssembly’s sandboxing to allowing very lightweight concurrency. This blog post combines Luatic, with a number of existing Rust libraries (that compile to WebAssembly with ease), to create this fantastic demo application.

Debugging WebAssembly with Chrome DevTools

BITSRC.IO

The ability to be able to debug an application, by setting breakpoints, stepping over the code and inspecting the current application state is critical to the success of any language. When WebAssembly was first released, Chrome allowed you to breakpoint the raw WebAssembly, however, as most of us are using wasm as a compilation target, this gives a very poor debugging experience.

This article takes a look at a couple of techniques for creating a better debugging experience, where you can breeakpoint and inspect the wasm module in the source language (e.g. C++, Rust). The first technique is source maps, which was originally created as a way to map minified JavaScript files back to their un-minified source. Emscripten currently supports source maps, however as the technology was designed for use with a text format (JS), rather than a binary format (wasm), the result is not ideal. The second technique covered is DWARF, which gives a more complete debug experience.

Emulate a Go HTTP server in your browser

GITHUB.COM

This project is an entirely browser-based HTTP server written in Go. The code itself runs within a ServiceWorker as a WebAssembly module. There is also a fantastic talk that accompanies this project. Whilst it might just look like a fun pet project, it could be useful in practice - if you need a simple Go demonstration server, this is an easy way to spin one up.

LibreOffice team working on WebAssembly port

THEREGISTER.COM

LibreOffice is a free and open-source office productivity software suite that has a very long heritage, traceable back to StarOffice which was released 36 years ago. The team behind this tool are eager to allow people to access their office suite from the browser. Rather than take the Google / Microsoft approach where the tools are cloud-based, LibreOffice want to run the full desktop application within the browser.

‘It’s where the industry is heading’

Using WebAssembly, they hope to have a working demo by Summer 2021. I’m eager to see the result!

How to debug WASM and achieve a reliable stack trace

LOGROCKET.COM

Yes, debugging is important! Here’s another brief article, again taking a look at the superior debugging experience offered by DWARF.

And Finally …

This is the first ever piece of WebAssembly music stored on a blockchain as a non-fungible token.