The huge potential of Kotlin/Wasm

DELEUZE.FR

Kotlin is a relatively new language, designed and initially released by JetBrains around 10 years ago. It is a JVM language (i.e. uses the same runtime as Java), and was designed to have some of the modern / functional feel of Scala whilst still allowing multi-paradigm development. It has become the language of choice for most Android developers.

When it comes to compiling Kotlin to WebAssembly it shares the same challenges as C#, JavaScript and Java, it requires a garbage collector, which is something WebAssembly lacks. Currently languages like C# and JavaScript solve this problem by compiling and shipping a runtime (also compiled to WebAssembly) alongside the application code.

However, the WasmGC proposal has been making good progress recently, and is now at a point where it is available (behind flags) on various browsers and runtimes. Kotlin/Wasm has made an early bet on WasmGC. This blog post briefly covers the current state of progress, which is all looking very promising!

WebAssembly Language Runtimes March update

WASMLABS.DEV

With WasmGC still underway, there are various languages that still require runtimes if you want to target WebAssembly. VMware labs have a really useful project that maintains patches that can be applied to various runtimes (PHP, Python, Ruby), allowing them to be compiled to WebAssembly. This blog post gives an update on the project and recent releases.

Introducing Ambient 0.1

AMBIENT.RUN

Ambient is a universal 3D runtime, compatible with any language that compiles to/runs on WebAssembly, designed to make it easy to build and deploy rich multiplayer worlds and experiences. I’m not much of a gamer, but the graphics look very cool to me, and it is great to see another platform betting om WebAssembly.

Write a First Person Game in 2KB With Rust

GITHUB.IO

Talking of games, this is much more my thing! This long, and detailed, blog post provides a step-by-step walkthrough for people interested in raycasting. I’ve always wanted to have a go at raycasting or raytracing. One day …

raycasting

Wasm Workers Server 1.0

WASMLABS.DEV

Wasm workers server is a simple serverless-style runtime, you add wasm modules to a folder, each of which is considered a worker. The server integrates with an HTTP server to route requests to these wasm workers, with communication via WASIs Stdio interface.

VLC.js

VIDEOLABS.IO

And finally, I’ve just spotted this - it is fully-functional VLC media player, within the browser.