đź“Ł State of WebAssembly 2022 Survey đź“Ł

I’d like to invite you all to share your views on WebAssembly and the wider wasm ecosystem. Please spare 5 minutes of your time to fill out this simple survey:

https://forms.gle/zXBZm76fz9DxtL76A

If you’re interested in last year’s results, take a look at this summary blog post.

First steps with Golang and WebAssembly

DEV.TO

The author of this post works on Discoblock, an open-source declarative volume configuration solution for Kubernetes - yeah, I’m going to have to Google that one, be right back …

OK, so Discoblocks is a solution for managing persistent storage within Kubernetes, handling CRUD operations for cloud-based disk resources, such as Amazon’s EBS (Elastic Block Store). Discoblocks has support for validators for cloud disk variants, this is effectively a plug-in model. However, Discoblocks is written in Go, which is a compiled language, and as a result, adding a new validator would require recompilation of the entire binary.

WebAssembly to the rescue! This post described how they use the TinyGo compiler to create WebAssembly modules, which are dynamically loaded into the wasmer-go runtime. Another great example of WebAssembly being used as a plugin model.

Wazero

WAZERO.IO

And while we’re on the subject of Go - Wazero is a newly released “zero dependency WebAssembly runtime for Go developers”. The goal of this project is to keep the runtime and the Go-based WebAssembly modules simple and lightweight.

WASI Networking: Towards a World Wide WebAssembly

YOUTUBE.COM

Networking is probably the most eagerly awaited WASI APIs. To be honest, without it, WASI and the server-side WebAssembly story is pretty limited. The good news is progress is being made!

WASI networking

This talk explores the current state of WASI networking and covers the recent implementation of sock_accept(). They also discuss the next steps towards building a full fledged networking API and the future of network-enabled WebAssembly applications, including some considerations with regards to deploying network identities and security.

Trunk - a Rust/Wasm bundler

TRUNKRS.DEV

”Pack your things, we’re going on an adventure!” ~ Ferris

Love that quote!

The WebAssembly ecosystem is still quite immature when compared to compiling Rust or Go to a more standard target. Trunk looks to tackle this problem by creating an all-in-one solution for building wasm applications with Rust.

Vosk Browser

GITHUB.COM

Vosk is an offline speech recognition API that supports a wide range of languages and devices, with a core that is written in C++. Vosk Browser provides a WebAssembly build of the underlying speech recognition engine, but goes the extra mile by wrapping the Emscripten generated WebAssembly module in a familiar and ergonomic JavaScript API.