WebAssembly Today ✍️ #14
Updates & commentaries on WebAssembly related technologies, including Rust, serverless, cloud, blockchain, and AI. Focus on the server-side.
Editorial: This week’s big news is Mozilla. Mozilla is the creator of WebAssembly and Rust. It is still one of the major contributors in both communities. Unfortunately, this week, Mozilla laid off 250 employees including several highly respected engineers in Rust and WebAssembly. How will that impact our communities? The silver lining is that those talented ex-Mozillians will probably bring those technologies to new places.
WebAssembly Today
Mozilla lay-off and its impact on both Rust and WebAssembly communities 😭
Mozilla announced that it is laying off 250 employees (about 1/4 of their total workforce) and re-focus it's technology and product efforts. Since Mozilla is the inventor of both Rust and WebAssembly, this round of layoff shook our communities. Some prominent technologists in Rust and WebAssembly were let go. In particular, there seem to be deep cuts into
The Servo browser engine team. This is the project that gave birth to the Rust language!
WebAssembly team, include Cranelift and WASI developers.
The MDN documentation team.
Firefox developer tools team.
On the brighter side, Mozilla did say that part of the goal of this re-organization is to re-focus on new technologies such as server-side WebAssembly.
We have no doubt that those 250 brilliant technologists from Mozilla will find new jobs in no time. We are hopeful that their new jobs would still allow them to dedicate time to work on Rust and WebAssembly. Best wishes to everyone! The Mozilla lifeboat web site is a great resource for everyone impacted by this.
Further information
Developer Matthew MacDonald wrote an article on Mozilla's contribution to modern software technologies and the implication of its recent cuts. Rust and WebAssembly are the Crown Jewels of Mozilla's storied tech. We have every reason to believe that the two communities will continue to thrive.
After the layoffs, Mozilla announced that it had signed a deal with Google to receive over $400M per year from Google in the next five years. That makes the engineering layoffs even more perplexing. Before the layoff, Mozilla spent around $300M per year. So there definitely appears to be enough $$$ going around.
WebAssembly without the browser 🤗
WebAssembly strikes again beyond the browser! Developer Alexandru Ene wrote a serious of tutorials on WebAssembly outside the browser host and frontend UI applications.
He discussed serval use case scenarios that could benefit from WebAssembly outside of the browser:
A scripting language for video games or similar application that require user level customization.
To run some code with minimal overhead as Fastly/Cloudflare are doing with their compute-at-edge scenarios.
To run some easy to update code on IoT devices safely and with minimal runtime overhead.
Extreamly fast programs in environments where you can’t do JIT.
What do you think?
Stateful WebAssembly functions 😎
WebAssembly defines a virtual “CPU” but not persistent storage (“disk”). So, WebAssembly functions and programs are transactional in nature. They are stateless. Until now! The Second State WebAssembly VM provides a WASI-like extension to access external databases and object stores. Try out this quick demo.
A minimal WebAssembly virtual DOM to build C++ SPA 👐
The asm-dom project enables you to write an entire SPA (Single Page Application) in C++ and compile it to WebAssembly (or asm.js as fallback) using Emscripten. This will produce a web app that executes at native speed and takes advantage of common hardware capabilities!
The asm-dom also supports server-side rendering. You can write a server-side app in C++ and run it in Node.js with WebAssembly.
A new WebAssembly book 📚
WebAssembly in Action introduces the WebAssembly stack and walks you through the process of writing and running browser-based applications. Author and developer Gerard Gallant starts from the basic concepts, and then discusses practical topics ranging from the module system, HTML and CSS, JavaScript Promises, and the WebAssembly JavaScript API.
Tutorials ☝️
Rusty news
Cross platform applications in Rust 🦀
Pro application developer AstroPad is migrating from Objective-C to Rust so that its product can work cross platform on Mac, iPad, and now Windows.
Analyze different languages from Hello World 👀
This is an excellent article on language design. In all programming languages, the designer must balance between ease-of-use and control. In the case of Rust, the compiler toolchain turns a seemingly simple hello world example into a complex set Rust statements that are quite incomprehensible to beginners. It is true for other languages as well. This article provides an in-depth technical discussion on what happens behind the scene and how we can create better programming languages for beginners and experts alike!
Clap: Faster development with tiny bounties 💰
The Clap team announced an issue bounty program. Anyone who could make a pull request for Clap will get $5 and $10 as a reward. Clap is a full-featured, fast Command Line Argument Parser for Rust.
probe-run, run embedded Rust apps like native apps 💾
The ferrous systems team announced the public release of probe-run, a custom Cargo runner for embedded development. With this, you can run embedded Rust programs with ease.
Features:
Acts as a Cargo runner, integrating into cargo run.
Displays program output streamed from the device via RTT.
Exits the firmware and prints a stack backtrace on breakpoints.
Real-time charting platform built with Rust & iced 🔢
CryptoWatch is a real-time charting platform built with Rust, iced, glow, wgpu, lyon, and tokio.
According to the author, CryptoWatch runs at around 8%-10% CPU on a typical server, while most comparable market watching web apps sit at over 50% CPU on the same machine.
Kosmonaut: Web browser from scratch in Rust 💻
Kosmonaut is a web browser engine. It is built with Rust using OpenGL bindings via gl-rs, Glutin for window management and OpenGL context creation, Servo's html5ever and cssparser for HTML and CSS parsing, and various other auxiliary libraries. However, the recent developments of Mozilla's Servo team could put this project at risk.
Blog Post 🔐
Serverless world
The state of serverless art ⚙
In this article, UC Berkeley's Joe Hellerstein introduces Cloudburst. It is a stateful framework for serverless computing.
As we discussed earlier, WebAssembly VMs can also support stateful functions.
Micronaut 2.0 Enhances Tooling, Improves Support for Serverless and GraalVM 🛵
Object Computing, Inc. (OCI) has formally released Micronaut 2.0, a major release of the full-stack JVM-based framework that helps create microservices-based, cloud-native, and serverless applications utilizing languages such as Java, Groovy, and Kotlin.
Enjoyed reading this newsletter? Please subscribe to make sure that you do not miss a future issue. ❤️
This newsletter is a collaborative effort. Don’t forget to leave comments! Suggest topics or projects you would like to see we cover next week via contact at webassembly.today. Thanks!
Until then, stay safe, stay healthy! 😷