WebAssembly Today ✍️ #8
Updates & commentaries on WebAssembly related technologies, including Rust, serverless, cloud, blockchain, and AI. Focus on the server-side.
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! 🎤
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?
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.
improved WebAssembly start-up and debugging performance,
updated SIMD support.
Weak references and finalizers
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!
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.
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.
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!
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, 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.
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.
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.
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! 😷