It’s been a bit of a quiet week on the WebAssembly front, so in this newsletter I’m taking the opportunity to briefly reflect on the current state of language support …
WebAssembly Language Support
Support for compiling to WebAssembly from various languages is moving really quickly, here’s a quick round-up:
- C / C++ - has very good (production ready) support via Emscripten, or other minimal LLVM-based toolchains.
- Rust - support officially landed last week, with Rust using Emscripten under-the-hood, although recently they have moved to LLVM.
- C# - has highly experimental support via Blazor, however this currently requires embedding a .NET runtime into the WASM.
- TypeScript - has highly experimental support via AssemblyScript, with the author working on a v.Next compiler. The other TypeScript projects (TurboScipt, speedy.js) have stalled.
- Java - via TeaVM, which looks relatively mature.
- Kotlin - Kotlin/Native 0.4 gained experimental support of WebAssembly.
- Go - support is under active development, with a recent update on this tracking issue.
If you have any other news on language support, please share it!
Making machine code look pretty - a colourful way to look at WASM binaries!
Want to run WebAssembly outside of a browser? With WAVM you can! This is a standalone virtual machine for executing WebAssembly.
And finally …
Elastic Man has to be the wackiest WebAssembly demo on the web!