WebAssembly Today ✍️ #8
Updates & commentaries on WebAssembly related technologies, including Rust, serverless, cloud, blockchain, and AI. Focus on the server-side.
Editorial:
This week, we will learn about new research on WebAssembly from academia. They asked: Is WebAssembly safe enough? The answer may surprise you! We will see more news about increased WebAssembly adoption on backend systems. Also this week, Rust is mentioned twice as a future implementation language for two well-known operating systems with billions of users! 🎤
WebAssembly Today
🔨 Everything Old is New Again: Binary Security of WebAssembly
Software Lab at the University of Stuttgart released a paper on WebAssembly Security (the lack of). They presented a set of attack vectors that could enable an attacker to gain write access, overwrite sensitive data, and trigger other undesired behavior. Their conclusion is that many classic vulnerabilities, which, due to common mitigations, are no longer exploitable in native binaries, are completely exposed in WebAssembly.
WebAssembly promises a portable platform combining near-native performance with strong safety and security guarantees. Hopefully, this research will help WebAssembly harden its security model. What do you think? As a community, how do we respond?
🍎 WasmPatch enables IOS/macOS App to get the power of WebAssembly
WasmPatch bridges Objective-C
and WebAssembly
. It builds C code into WebAssembly and then enabled developers to call those WebAssembly functions from Objective-C applications. It is similar to what ssvmup does for JavaScript and WebAssembly.
With WasmPatch, iOS and macOS applications could leverage the power of WebAssembly. For example, they could add features or replace Objective-C code to fix bugs dynamically.
🌹 New things in V8 v8.4
The Google V8 JavaScript engine recently released v8.4. Highlights from this new version are:
WebAssembly:
improved WebAssembly start-up and debugging performance,
updated SIMD support.
JavaScript:
Weak references and finalizers
🌾 Grain, a new programming language "powered by" WebAssembly
Grain is a strongly typed functional language designed for safety and performance. Its syntax looks a little like Rust. One of its interesting features is that Grain source code compiles directly into WebAssembly. That allows Grain programs to run in the browser, on the server, and anywhere WebAssembly is available safely!
🤖 Introduction to WebAssembly on Kubernetes with Krustlet
In the previous issues, We introduced Krustlet, a Kubernetes Kubelet written in Rust. We are very interested in Krustlet because it supports WebAssembly.
Rawkode wrote an article to demonstrate how to use Krustlet to run WASM, with WASI, on Kubernetes. This is wild.
💻 Use WebAssembly in the browser, replacing the Adobe Flash Player
Ten years after the late Steve Jobs published his controversial Thoughts on the flash open letter, and predicted the end of the Flash Player, Adobe finally announced the end to Flash in 2020.
In its place, the Adobe team recommends using open standards, such as WebAssembly, for interactive web apps in the future. The era of Flash is over.
Rusty news
🤔 Will Rust replace C in the Linux Kernel?
For a systems language like Rust, the ultimate validation is to replace C in crucial infrastructure systems, such as ... the Linux Kernel! Well, Linus Torvalds himself suggested that in a recent interview. Can’t wait!
🤔 Will Rust be used in Android?
Rust is on a roll this week! Besides the Linux Kernel, the Android team is also looking into re-writing some Android system components in Rust. Looking forward to the day.
🏆 Protochess game written in Rust
Protochess, an online chess website, lets users customize their own chess boards. Protochess uses Rust on the backend and Svelte on the frontend. If you choose to play the game with the computer, you actually are playing with protochess-engine-rs, which is compiled to protochess-engine-wasm via wasm-bindgen to run inside WebAssembly.
👨💻 tui-rs, Another terminal user interface written in Rust
tui-rs
is a Rust library to build rich terminal user interfaces and dashboards. It is inspired by the Javascript
library blessed-contrib and the Go
library termui. The demo gif looks very fancy.
🐍 RustPython: Building a Python 3 interpreter in Rust
RustPython is a Python interpreter written in Rust, instead of C. RustPython could also be compiled to a standalone WebAssembly module. The online demo by the RustPython team is compiled from Rust to WebAssembly so that it runs in the browser.
Serverless World
🤜 Vendia raises $5.1M for its multi-cloud serverless platform
Vendia announced it had raised a $5.1 million seed funding round. Vendia combines the best of serverless and blockchain to help build a truly multi-cloud serverless platform for better data and code sharing.
🤩 Introducing Amazon HoneyCode
Amazon Honeycode, which is available in beta, is a fully managed service that allows customers to quickly build powerful mobile and web applications – with no programming required.
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. Thanks!
Until then, stay safe, stay healthy! 😷