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.
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.
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 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 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!
Yes, debugging is important! Here’s another brief article, again taking a look at the superior debugging experience offered by DWARF.