WebAssembly Today ✍️ #23
Updates & commentaries on WebAssembly related technologies, including Rust, serverless, cloud, blockchain, and AI. Focused on the server-side.
Editorial: The big news of this week is Bytecode Alliance’s first anniversary.
WebAssembly Today
Bytecode Alliance: One year update
Bytecode Alliance celebrated its one year anniversary with a blog post. The big news is that Fastly has acquired the wasm-on-the-server team from Mozilla. After the turmoil, the team is focused on technology again. The blog post lays out the vision of WebAssembly nanoprocess and the key elements in its implementation: WASI, Interface Types, and Module Linking. It is well worth a read.
A lightweight design for serverless Function-as-a-Service
FaaS (Function as a Service) allows developers to upload and execute code in the cloud without managing servers. FaaS offerings from leading public cloud providers are based on system microVM or application container technologies such as Firecracker or Docker. The authors demonstrate that lightweight high-level language runtimes, such as WebAssembly, could offer performance and scaling advantages over existing solutions, and could enable finely-grained pay-as-you-use business models in this paper. They compared widely used performance benchmarks between Docker native and WebAssembly implementations of the same algorithms and discussed the barriers for WebAssembly adoption in serverless computing, such as the lack of tooling support.
Introducing WAGI: The Easiest Way to Build WebAssembly Microservices
This article describes a way to deploy a WebAssembly WASI function as a service in cloud environments that do not explicitly support a WebAssembly runtime. It shows that you can just use the STDIN and STDOUT to pass data between the service host and WebAssembly function. The approach is tested on Azure Functions. It is the same approach as what Second State did with TencentCloud.
Using ImageMagick to create an interactive GIF test suite
The author created a test suite for a GIF decoder in SerenityOS.He compiled ImageMagick to WebAssembly so that the examples could run interactively in the browser.
Lunatic, actor system in WebAssembly
Lunatic is a platform for building actor systems that use WebAssembly instances as actors. It is heavily inspired by Erlang and works with any language that compiles into WebAssembly. However, currently, only Rust bindings are supported.
markdown wasm
A very fast Markdown parser & HTML renderer based on md4c and compiled to WebAssembly.
Zero dependencies
Portable & safe
Simple API
Fast and efficient
JS + WASM is only 31 kb gzipped
TensorFlow inferencing using WebAssembly and WASI
This article shows how to use the Rust Tract crate to run a Tensorflow model in WebAssembly.
Tutorial: Run Go and TinyGo in browser with WebAssembly
Follow this step by step guide to create a WebAssembly program in Go and TinyGo. It is nice to see WebAssembly examples beyond Rust and C languages.
Rusty News
Looking for Rust developers
Microsoft is hiring for a position "focused on delivering Rust compiler improvements"
Facebook is hiring a team to work on the Rust compiler and libraries
Embark released rust-gpu v0.1
The rust-gpu project aims to make Rust a first-class citizen for GPU applications. The rust-gpu replaces the RLSL project.
Lemmy Release v0.8.0
Lemmy is an alternative to Reddit/Hacker News. It can be self-hosted and hence is decentralized. Lemmy is written in Rust and Actix.
Introducing Ungrammar
The Rust-analyzer is a “new IDE backend” for Rust. The team recently released support for Ungrammer — a formalism for describing concrete syntax trees, which is one of the core data structures in the IDE.
5x Faster Rust Docker Builds with cargo-chef
cargo-chef
is a new cargo sub-command to build just the dependencies of your Rust project based on a JSON description file (aka a recipe). In a benchmark test,cargo-chef
cut Docker build time from ~10 minutes to ~2 minutes.
Serverless world
NetApp debuts new ‘storageless’ storage platform for Kubernetes apps
NetApp released a new service called Spot Storage, which is a “serverless and storageless” solution for software containers.
Quick Guide to AWS CDK and Serverless with REST API and Data Lake Analytical Querying
A complete guide on how to deploy a serverless app using the AWS CDK.