Skip to content

Web Assembly

October 2, 2023
June 19, 2017

web-assembly-runtime

WebAssembly
WebAssembly - Wikiwand

Bytecode Alliance
WebAssembly 中文网|Wasm 中文文档
WebAssembly-design · GitHub

The State of WebAssembly – 2022 and 2023

WebAssembly Core Specification
WebAssembly feature detection

WebAssembly | MDN
WebAssembly Summit - YouTube

Wasm By Example
Tanks! Demo - WebAssembly
Terrarium - Fastly Labs
diekmann/wasm-fizzbuzz: WebAssembly from Scratch: From FizzBuzz to DooM.

Playgrounds:
WebAssembly Studio
Compiler Explorer

mbasso/awesome-wasm: 😎 Curated list of awesome things regarding WebAssembly (wasm) ecosystem.
WebAssembly Language Support Matrix | Fermyon • Experience the next wave of cloud computing. !important

How to Think About WebAssembly (Amid the Hype) | Fermyon • Experience the next wave of cloud computing.
Four go wild for wasm: Corporate quartet come together to build safe WebAssembly sandbox • The Register

Understand WebAssembly in 5 minutes - Je suis un dev
WebAssembly – Mozilla Hacks – the Web developer blog
Creating and working with WebAssembly modules - Mozilla Hacks - the Web developer blog
Replacing a hot path in your app's JavaScript with WebAssembly | Web | Google Developers

The Three Pillars of WebAssembly – The New Stack
Is WebAssembly magic performance pixie dust? — surma.dev
WebAssembly, Expanding the Pie - Ben Smith at WebAssembly Summit 2020-05
Building a Containerless Future with WebAssembly - Kevin Hoffman at WebAssembly Summit 2020-05
What is WebAssembly? The next-generation web platform explained | InfoWorld 2022-05

What is WebAssembly? The Dawn of a New Era — JavaScript Scene — Medium
Get started with WebAssembly — using only 14 lines of JavaScript
WebAssembly Will Finally Let You Run High-Performance Applications in Your Browser - IEEE Spectrum history
An Introduction to WebAssembly - DZone Web Dev
WebAssembly tutorial: Get started with WebAssembly | InfoWorld
What’s new in WebAssembly portable browser code | InfoWorld
WebAssembly gets its own IDE | InfoWorld
What is WebAssembly? The next-generation web platform explained | InfoWorld

A cartoon intro to WebAssembly - Mozilla Hacks - the Web developer blog
Memory in WebAssembly (and why it’s safer than you think) - Mozilla Hacks - the Web developer blog
WebAssembly Interface Types: Interoperate with All the Things! - Mozilla Hacks - the Web developer blog
Multi-Value All The Wasm! - Mozilla Hacks - the Web developer blog
Security - WebAssembly

Lin Clark: A Cartoon Intro to WebAssembly | JSConf EU 2017 - YouTube
WebAssembly and the Death of JavaScript - JS Monthly - February 2018 - YouTube
WebAssembly Demystified - YouTube
WebAssembly: Your Browser is the new OS - Jeremy Likness - YouTube slides
Qt for WebAssembly {showcase} - YouTube

Compiling for the Web with WebAssembly (Google I-O '17) - YouTube
CppCon 2016: Dan Gohman “C++ on the Web: Let's have some serious fun." - YouTube
WebAssembly and the Death of JavaScript - JS Monthly - February 2018 - YouTube
WebAssembly: Disrupting JavaScript - YouTube

WebAssembly -Part I | An Introduction — (Part 1) – tech-lah – Medium
WebAssembly -Part II.A | Wasm with Rust – tech-lah – Medium
WebAssembly -Part II.b | Golang with WASM – tech-lah – Medium

The anatomy of WebAssembly: Writing your first WebAssembly module using C (C++) | by Uday Hiwarale | JsPoint | Medium
Programming using Web Assembly – Alexander Curtis – Medium

JS Party #32: WASM is AWSM with Kevin Ball, Suz Hinton, and Jay Phelps | News and podcasts for developers | Changelog
Zoom on Web: WebAssembly SIMD, WebTransport, and WebCodecs

From JavaScript to WebAssembly in three steps micr.io's port with AssemblyScript + WebGL

Fermyon

Fermyon - The Frictionless WebAssembly Platform | Fermyon Technologies (@FermyonTech)
Develop serverless WebAssembly apps with Spin | Fermyon Technologies (@FermyonTech)

Deployment

Restricting Wasm module sharing to same-origin - Chrome Developers

WebAssembly Procedure Call (waPC)

waPC

wasmcloud Documentation
wasmcloud
Getting Started with wasmCloud – The New Stack

Wasm Interface Type (WIT)/WebAssembly Interface (WAI)

like gRPC

bytecodealliance/wit-bindgen: A language binding generator for WebAssembly interface types
component-model/WIT.md at main · WebAssembly/component-model

wasmerio/wai: A language binding generator for wai (a precursor to WebAssembly interface types) for Wasmer
wai/WAI.md at main · wasmerio/wai
WAI is the Answer !!!

WebAssembly text format (WAT)

Text Format — WebAssembly 1.1 (Draft 2021-05-06)
WAST vs WAT · webassemblyjs

Understanding WebAssembly text format - WebAssembly | MDN
Converting WebAssembly text format to wasm - WebAssembly | MDN
WAT - WebAssembly Text Format.

#perfmatters

The Six Ways of Optimizing WebAssembly

Debugging

Dwarf Home
Improved WebAssembly debugging in Chrome DevTools | Google Developers
Debugging WebAssembly with modern tools | Google Developers
The Pain of Debugging WebAssembly – The New Stack

Introduction - Twiggy🌱 repo code size profiler

WebAssembly/wabt: The WebAssembly Binary Toolkit

dabeaz/wadze: Web Assembly Decoder - Zero Extras

bytecodealliance/wasm-tools: Low level tooling for WebAssembly in Rust

Supported Languages

appcypher/awesome-wasm-langs: 😎 A curated list of languages that compile directly to or have their VMs in WebAssembly
WebAssembly Language Support Matrix | Fermyon Technologies (@FermyonTech)

Motoko

Motoko Programming Language :: Internet Computer
Learning the basics of Motoko :: Internet Computer
Motoko, a programming language for building directly on the internet - Stack Overflow Blog

dfinity/motoko-base: The Motoko base library

Grain

Grain: A strongly-typed functional programming language for the modern web.
grain-lang/grain: The Grain compiler toolchain and CLI. Home of the modern web staple. 🌾

Oscar Spencer — Grain: Your WebAssembly-First Programming Language - YouTube
Grain: Your WebAssembly-First Programming Language - WebAssembly Summit 2021

AssemblyScript

Introduction - The AssemblyScript Book
AssemblyScript/assemblyscript: Definitely not a TypeScript to WebAssembly compiler 🚀
AssemblyScript - HTTP 203 - YouTube

From JavaScript to WebAssembly in three steps

WebAssembly/binaryen: Compiler infrastructure and toolchain library for WebAssembly
wasm-opt to reduce file size

speedy.js

MichaReiser/speedy.js: Accelerate JavaScript Applications by Compiling to WebAssembly

Emscripten (C/C++)

Emscripten documentation

Porting to Emscripten ✩ Mozilla Hacks – the Web developer blog
An introduction to IL2CPP internals – Unity Blog
The anatomy of WebAssembly: Writing your first WebAssembly module using C (C++) | by Uday Hiwarale | JsPoint | Medium

Emscripten and npm | Web | Google Developers
Extending the browser with WebAssembly | Web | Google Developers
Emscripten’s embind | Web | Google Developers generate wrappers automatically

WebAssembly 如何演进成为“浏览器第二编程语言”?-InfoQ
从 0 开始快速上手 WebAssembly:Emscripten 使用入门-InfoQ
从 0 开始快速上手 WebAssembly:打造基于 WASM 的高性能安全沙盒-InfoQ

Outside the web: standalone WebAssembly binaries using Emscripten · V8

Porting a C++ Rendering Engine to WebAssembly | by Benjamin Deleze | Cyberbotics | Jul, 2021 | Medium

Cheerp

Cheerp | C/C++ to WebAssembly compiler
Home · leaningtech/cheerp-meta Wiki

Cheerp: The C++ Compiler for the Web : cpp

WebAssembly Virtualisation | CheerpX | Leaning Technologies run X86 binaries
Extreme WebAssembly 1: pushing browsers to their absolute limits | by Alessandro Pignotti | leaningtech | Medium
Extreme WebAssembly 2: the sad state of WebAssembly tail calls | by Alessandro Pignotti | leaningtech | Medium

JSExport: C++ in the browser made easy | by Carlo Piovesan | leaningtech | Medium
Compiling C++ to JavaScript: Emscripten vs. Cheerp | Almost Secure
azakai's blog: C++ to JavaScript: Emscripten, Mandreel, and now Duetto Duetto is the old name for Cheerp
Cheerp creator: Our C++-to-JavaScript compiler beats Emscripten | InfoWorld

Python in Browser

CPython WASM

cpython/Tools/wasm/README.md at main · python/cpython
Compile Python to WebAssembly (WASM) — Unofficial Python Development (Victor's notes) documentation
Python in WebAssembly | Fermyon • Experience the next wave of cloud computing.
"What can't WebAssembly do?" - Katie Bell (PyCon AU 2023) - YouTube

pygame-web/pygbag: python and pygame wasm for everyone ( packager + test server + simulator )
pygame#Web

ethanhs/python-wasm: Build scripts and configuration for building CPython for Emscripten 😴inactive
How to build and run your Python scripts in a web browser • The Register

Pyodide

Pyodide
pyodide/pyodide: Python with the scientific stack, compiled to WebAssembly.
Mozilla promotes Pyodide as independent project to put Python in a browser • DEVCLASS
supports CPython compiled to WebAssembly

A Brief Tour through Pyodide - Iodide Iodide (deprecated) is for data science
Pyodide: Bringing the scientific Python stack to the browser - Mozilla Hacks - the Web developer blog
Pyodide Spin Out and 0.17 Release - Mozilla Hacks - the Web developer blog

PyScript

PyScript | Run Python in your HTML package TypeScrypt + Svelte + Tailwind + Pyodide together
pyscript/pyscript: Home Page: https://pyscript.net Examples: https://pyscript.net/examples
A First Look at PyScript: Python in the Web Browser – Real Python
PyScript: Making Python Scripts Work In Browser For Web App Creation
I Tested PyScript — And You Can Literally Write Python Scripts In Your Browser | by Eldad Uzman | Better Programming
PyScript is officially here!🚀 Build web apps with Python & HTML - YouTube

Brython

Brython Browser Python
brython-dev/brython: Brython (Browser Python) is an implementation of Python 3 running in the browser

How Brython works · brython-dev/brython Wiki
transpile Python to JS, with Python standard library and DOM wrapper

Brython documentation
Brython tutorial
Writing an Android application · brython-dev/brython Wiki

Brython videos and talks · brython-dev/brython Wiki

PyPy.js

PyPy.js
pypyjs/pypyjs: PyPy compiled to JavaScript 😴inactive, the output is too large

Rust

Introduction - Rust and WebAssembly
bytecodealliance/cargo-wasi: A lightweight Cargo subcommand to build Rust code for the wasm32-wasi target

rustup target add wasm32-wasi
rustup target add wasm32-unknown-unknown

cargo build --release --target wasm32-wasi
cp target/wasm32-wasi/release/*wasm .

Rust and WebAssembly · GitHub
Introduction - The wasm-bindgen Guide
rustwasm/wasm-bindgen: Interoperating JS and Rust code
Rust, WebAssembly, and the future of Serverless by Steve Klabnik - YouTube
Rust in the Browser for JavaScripters: New Frontiers, New Possibilities - YouTube 2019-11
First steps with WebAssembly in Rust

Introduction - Hello wasm-pack!
ashleygwilliams/wasm-pack: 📦✨ your favorite rust -> wasm workflow tool!

Makepad Play with Rust+Wasm live

Compiling from Rust to WebAssembly - WebAssembly | MDN
Introduction - Rust and WebAssembly
Using WebAssembly with Rust from @nikgraf on @eggheadio
Rust and WebAssembly Serverless Functions in Vercel – The New Stack
Build a WebAssembly App with Rust – The New Stack

Rust and WebAssembly for masses - Introduction - DEV Community 👩‍💻👨‍💻
Building and augmenting libraries by calling Rust from JavaScript | Opensource.com
Why should you use Rust in WebAssembly? | Opensource.com

🕸️ Using rust modules in JavaScript/Web Development (Part 1 / 3) [Plain JS]
🕸️ Using rust modules in JavaScript/Web Development (Part 2 / 3) [Webpack]
🕸️ Using rust modules in JavaScript/Web Development (Part 3/ 3) [NodeJS]
dflemstr/rust-native-wasm-loader

Edge programming with Rust and WebAssembly
Making WebAssembly better for Rust & for all languages – Mozilla Hacks – the Web developer blog
JavaScript to Rust and Back Again: A wasm-bindgen Tale – Mozilla Hacks – the Web developer blog
Rust and JavaScript interoperability coming via WebAssembly | InfoWorld
Writing a front-end WebAssembly framework in Rust: lessons learned
WebAssembly Modules in Rust: An Introduction - Ross Bulat - Medium
WebAssembly Modules in Rust: Syntax Deep Dive - Ross Bulat - Medium
WebAssembly — Is It As Scary As It Sounds? - Better Programming - Medium

Snowhash in Rust with WASM · joshleeb

Towards Complexity - DEV Community 👩‍💻👨‍💻
Oops, I'm Making A Framework - DEV Community 👩‍💻👨‍💻
In And Out Of Rabbit Holes - DEV Community 👩‍💻👨‍💻
Callbacks, Trait Objects & Associated Types, Oh My! - DEV Community 👩‍💻👨‍💻

lord/wargo: Easy Rust to WebAssembly
Rust to WebAssembly, Made Easy – Lord i/o

An introduction to profiling a Rust web application - LogRocket Blog

WAI

wai-bindgen-rust - crates.io: Rust Package Registry for Wasmer
Build Universal Libraries with Rust - YouTube

rsw

rwasm/rsw-rs: 🦞 wasm-pack based build tool
rwasm/awesome-rsw: 🕸 A curated list of awesome things related to rsw

rwasm/vite-plugin-rsw: 🦀 wasm-pack plugin for Vite
Rust + Vite = 🚀 - DEV Community 👩‍💻👨‍💻

rustwasmc

The rustwasmc tool for WasmEdge
second-state/rustwasmc: Tool for building Rust functions for Node.js. Combine the performance of Rust, safety and portability of WebAssembly, and ease of use of JavaScript.

Frontend

Introduction - Yew Docs frontend app
yewstack/yew: Rust / Wasm framework for building client web apps

likr-sandbox/rust-webgl2-example

Deno

deno-wasi/README.md at master · caspervonb/deno-wasi

denosaurs/wasabi: 🍣 Template repository for deno modules that want to use wasm

Deno Loves WebAssembly
🦕 Tutorial: Deno Apps with WebAssembly, Rust, and WASI
second-state/ssvm-deno-starter: A template project to run Rust functions in Deno through the Second State WebAssembly engine.

Go

WebAssembly · golang/go Wiki
Go Time BONUS – Go and WebAssembly (Wasm) | News and podcasts for developers | Changelog

dennwc/dom: DOM library for Go and WASM

all: WebAssembly ("wasm") support · Issue #18892 · golang/go
WebAssembly architecture for Go - Google Docs
Quick Tutorial: Write Go, Run WASM! - DEV Community 👩‍💻👨‍💻
GOOS=js GOARCH=wasm go1.11beta3 build -o test.wasm main.go

TinyGo compiler for microcontroller and WASI

Go and WebAssembly | Learn the Basics of WASM - YouTube

Go WebAssembly Internals - Part 1 - DEV Community 👩‍💻👨‍💻
Go WebAssembly Internals - Part 2 - DEV Community 👩‍💻👨‍💻

C#/.NET/Blazor

Blazor was known as Razor Components in preview builds of .NET Core
Blazor is used for building web services/web pages

Blazor - Wikiwand
Blazor | Build client web apps with C# | .NET
dotnet/aspnetcore: ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux. Blazor now part of ASP.NET Core
ASP.NET Core Blazor | Microsoft Learn
ASP.NET Core Blazor Hybrid | Microsoft Learn
Building a Progressive Web App with Blazor | Visual Studio Blog

Blazor WebAssembly: .NET CLR on browser with WASM
Blazor Server: SSR with live update

Blazor, a new framework for browser-based .NET apps - Steve Sanderson - YouTube 2020-02
Blazor Web Apps - Goodbye JavaScript! I'm in love with C# - YouTube 2020-08
Intro to Blazor WebAssembly and How It Is Different from Blazor Server - YouTube 2020-06

Blazor - .NET in the browser | DotNetCurry
Blazor – on the server or on the client – csharp.christiannagel.com
Blazor Vs. Traditional Web Apps – ChristianFindlay.com

Writing a Blazor App
JeremyLikness/blazor-wasm: Blazor and WebAssembly examples (part of a Blazor presentation)
Next for Blazor: AOT for 'Massive Speed Gains' -- Visual Studio Magazine
Wrapping JavaScript libraries in Blazor WebAssembly/WASM
Blazor WebAsm — C# on the client side (again) | by Jacek Chmiel | Avenga | Medium

SteveSandersonMS/dotnet-wasi-sdk: Packages for building .NET projects as standalone WASI-compliant modules

Zig

Using Zig to Build Lua for WebAssembly in the Browser - YouTube
Programming WebAssembly with Zig - Getting Started with the ZIG programming language - YouTube
Zig loves WASI! - Jakub Konka - YouTube