awesome-wasm

Wasm toolkit

A curated list of resources and tools for the WebAssembly ecosystem

😎 Curated list of awesome things regarding the WebAssembly (wasm) ecosystem.

GitHub

9k stars
243 watching
502 forks
last commit: 6 days ago
Linked from 5 awesome lists

awesomeawesome-listawesome-wasmawesome-webassemblylistlistsresourceswasmwebassembly

Awesome Wasm / General Resources

Official Site
GitHub
WebAssembly MDN
WebAssembly Wikipedia
WebAssembly Specification

Awesome Wasm / Online Playground

WebAssembly Explorer
Assembleash - WebAssembly and Typescript-like languages playground 74 over 4 years ago
Wat2Wasm
Wasm2Wat

Awesome Wasm / Tutorials

Developer's Guide
Wasmbyexample - Hands-On Introduction Examples and Tutorials for Webassembly
Introduction to WebAssembly Text (2021)
Hands-On Webassembly: Try the Basics (2020)
Using WebAssembly modules in C# (2020)
First steps with WebAssembly in Rust (2020)
WebAssembly threads in Firefox (2020)
Using the import statement with an Emscripten-generated module in Vue.js (2020)
Hit the Ground Running with WebAssembly (2019)
Uno Platform Bootcamp - single-source WASM & Mobile app tutorial (2019) 97 3 months ago
Porting Games to the Web with WebAssembly (2019)
Level up Command-line Playgrounds with WebAssembly (2019)
WebAssembly Physics and DOM objects (2018)
egghead.io: Get Started Using WebAssembly (WASM)(2017)
The Path to Rust on the Web (2017)
WebAssembly 101: a developer first steps (2017)
Emscripten/HTML Integration Tips (2017)
Compiling Rust to WebAssembly Guide (2017)
How to get a performance boost using WebAssembly (2017)
Getting Started With WebAssembly in Node.js (2017)
Build Your First Thing With WebAssembly (2016)
WebAssembly — The missing tutorial (2016)
Webassembly initial steps tutorial (2016)
WebAssemblyMan – man page for WebAssembly.

Awesome Wasm / Compilers

Emscripten - LLVM-based project that compiles C and C++
Binaryen - Binaryen is a compiler and toolchain infrastructure library for WebAssembly, written in C++ 7,523 5 days ago
Rust - A safe, concurrent, practical language
ilwasm - CIL to WebAssembly compiler 362 about 9 years ago
WebAssembly for the GNU Toolchain
faust2 - Functional programming language for signal processing and sound synthesis
Asterius - A Haskell to WebAssembly compiler 1,974 about 2 years ago
PPCI.wasm - PPCI Can compile wasm to machine code and run it in the Python process
TinyGo - Go for embedded devices and WebAssembly. Creates very small .wasm files. 15,449 6 days ago
Bytecoder - A Rich Domain Model for Java Bytecode and Framework to interpret and transpile it to other languages such as JavaScript, OpenCL or WebAssembly 897 6 months ago
AssemblyScript - Definitely not a TypeScript to WebAssembly compiler 16,936 9 days ago

Awesome Wasm / Non-Web Embeddings

WASI - The WebAssembly System Interface
wasm3 - The fastest WebAssembly interpreter (x86, x64, ARM, MIPS, Xtensa) 7,322 2 months ago
fizzy - Fast, deterministic, and pedantic WebAssembly interpreter written in clean C++17 217 about 1 year ago
wamr - WebAssembly Micro Runtime (WAMR) is an AOT/JIT/interpreter focusing on small footprint 4,963 8 days ago
wac - WebAssembly in C (x86) 472 3 months ago
Asmble - WebAssembly on the JVM 634 over 1 year ago
wasmachine - WebAssembly in a FPGA 202 about 7 years ago
Olin - WebAssembly on the server 519 5 months ago
Wasmer - Standalone JIT WebAssembly Runtime 19,004 3 days ago

Awesome Wasm / Non-Web Embeddings / Wasmer - Standalone JIT WebAssembly Runtime

Wasmer for Go 2,833 6 months ago
Wasmer for Python 2,023 about 1 year ago
Wasmer for PHP 1,010 9 months ago
Wasmer for Ruby 475 9 months ago
Wasmer for Postgres 412 almost 4 years ago

Awesome Wasm / Non-Web Embeddings

warpy - WebAssembly in RPython 66 over 5 years ago
pywebassembly - WebAssembly interpreter written in pure Python 13 over 4 years ago
py-wasm - WebAssembly interpreter written in pure Python 105 almost 2 years ago
pywasm - WebAssembly interpreter written in pure Python. 450 3 days ago
wabt - WebAssembly toolkit and interpreter written in C++ 6,881 9 days ago
binaryen - WebAssembly toolkit and interpreter written in C++ 7,523 5 days ago
wagon - WebAssembly interpter written in Go 903 over 4 years ago
wasmtime - Standalone WebAssembly Runtime 15,404 6 days ago
embly - A serverless web application framework for collaboration and scale 100 over 3 years ago
SSVM - WebAssembly Virtual Machine for AI and Blockchain applications 8,582 3 days ago
Manticore - Symbolic execution engine with support for WebAssembly 3,695 about 1 year ago
WAVM - WebAssembly virtual machine, designed for use in non-web applications 2,652 9 months ago
windtrap - A WASM VM written in Elixir 19 almost 5 years ago
Extism - the universal plug-in system to make your software programmable 4,319 5 days ago
Owi - a Wasm interpreter written in OCaml 135 5 days ago

Awesome Wasm / Projects / AI

Voy - A WASM vector similarity search engine written in Rust 880 about 1 year ago

Awesome Wasm / Projects / Apache Server

mod_wasm - An extension module for the Apache HTTP Server that enables the usage of WebAssembly (Wasm). 113 6 months ago

Awesome Wasm / Projects / Web frameworks-libraries

asdom - DOM bindings for AssemblyScript, write DOM code just like in TypeScript, but compiled to WebAssembly, by LUME 95 5 months ago
asm-dom - A minimal WebAssembly virtual DOM to build C++ SPA 2,795 over 1 year ago
Blazor - Microsoft's web UI framework using C#/Razor and HTML, running client-side via WebAssembly
Yew - Rust framework for making client web apps 30,833 6 days ago
Perspective - Streaming pivot visualization via WebAssembly 8,530 3 days ago
go-vdom-wasm - Webassembly VDOM to create web application using Golang(experimental) 82 almost 5 years ago
seed - A Rust framework for creating web apps
Vugu - A modern UI library for Go+WebAssembly
Vecty - Lets you build responsive and dynamic web frontends in Go using WebAssembly
Zwitterion - A web dev server that lets you import anything* 580 9 days ago

Awesome Wasm / Projects / Data processing

jq-web - the JSON processing tool jq ported to the web with Emscripten 310 17 days ago

Awesome Wasm / Projects / WebGL

ammo.js - direct port of the Bullet physics engine to JavaScript using Emscripten 4,183 10 months ago
glas - WebGL in WebAssembly with AssemblyScript, by LUME 887 3 months ago
Particle System - an experiment designed to benchmark web technologies: ES6, Emscripten and Web Assembly 38 almost 6 years ago
Oryol - a small, portable 3D coding framework written in C++

Awesome Wasm / Projects / webpack

wasm-loader - WASM webpack loader 642 about 3 years ago
cpp-wasm-loader - C/C++ to WASM Webpack loader optimized for small bundle sizes 131 over 3 years ago

Awesome Wasm / Projects / Browserify

rustify - Rust WebAssembly transform for Browserify 494 over 6 years ago

Awesome Wasm / Projects / Node.js

webassembly - A minimal toolkit and runtime to produce and run WebAssembly modules. 816 about 5 years ago
wasm-pack - pack up the wasm and publish it to npm! 1 about 1 year ago
go-wasm-cli - Minimalistic cli to create and run (with hot reload) Go application targeting WASM 40 almost 2 years ago
xwasm - WebAssembly Packager and WASM tooling for modern frontend 56 almost 2 years ago

Awesome Wasm / Projects / .NET

Uno Platform - An implementation of Microsoft's UWP APIs for iOS/Android/WebAssembly/Linux/macOS, using C#/XAML on top of mono-wasm 8,999 3 days ago
Ooui.Wasm - A Xamarin.Forms backend for WebAssembly, using C#/XAML on top of mono-wasm 1,623 almost 2 years ago

Awesome Wasm / Projects / Others

wasm-init - Work environment and code generator for WebAssembly projects 171 over 6 years ago
wasm - Python WebAssembly decoder & disassembler library 264 over 3 years ago
MXnet.js - ASM.js build of MXNet, deep learning (neural nets and so) library 435 about 4 years ago
YAKC - a multi-system 8-bit emulator written in C++
Eufa - a high efficient utility functions library written in webassembly 30 over 6 years ago
Argon2 in browser - Argon2 library compiled for browser runtime 387 over 1 year ago
cld3-asm - Wasm based JS binding for Google compact language detector 3 58 11 months ago
hunspell-asm - Wasm based JS binding for Hunspell spellchecker 68 almost 2 years ago
wasm-bindgen - Interoperating JS and Rust code 25 over 1 year ago
ewasm - Ethereum flavored WebAssembly
webm-wasm - Create webm videos in JavaScript via WebAssembly 395 about 2 months ago
wasm-pdf – Generate PDF files with JavaScript/WASM 484 over 1 year ago
go-web-app – Quickly setup Go + WebAssembly frontend apps
gotemplate.io – Quicky test and visualize your Go templates live
WasmBench - A large dataset of real-world WebAssembly binaries, collected from the Web, GitHub, NPM and more 53 over 2 years ago
gtree - Web app that converts from Markdown to tree using WebAssembly
wasm-bpf - A WebAssembly eBPF library, toolchain and runtime to help you build eBPF programs to Wasm and run in kernel. 386 3 months ago
crypto-js-wasm - An alternate to crypto-js implemented with WebAssembly and ESM 223 4 months ago
ssheasy - An online ssh and sft client 234 6 months ago

Awesome Wasm / Languages / Esoteric

funge.js - A Befunge JIT 19 about 1 year ago

Awesome Wasm / Languages / Forth

WAForth - Bootstrapping Dynamic Forth Interpreter/Compiler for & in WebAssembly 498 2 months ago

Awesome Wasm / Languages / Go

Go - Go programming language WebAssembly support 124,071 6 days ago
Compiling Go to WebAssembly
VueGo - WebAssembly Vue.js wrapper written in Go

Awesome Wasm / Languages / JavaScript-family

AssemblyScript - A subset of TypeScript that compiles to WebAssembly 16,936 9 days ago
Getting Started with AssemblyScript
TurboScript - A TypeScript-like language that compiles to asm.js and WebAssembly (unmaintained) 494 about 7 years ago
speedy.js - Accelerate JavaScript Applications by Compiling to WebAssembly (unmaintained) 347 about 7 years ago

Awesome Wasm / Languages / Kotlin

Kotlin/Wasm (Kotlin WebAssembly)

Awesome Wasm / Languages / Lua

wasm_lua - Lua VM running in a WASM environment 792 12 months ago
wasmoon - a high level Lua VM with JS bindings 492 4 months ago

Awesome Wasm / Languages / OCAML

ocamlrun-wasm - OCaml Bytecode Interpreter in WASM 255 over 7 years ago
wasicaml - Translate OCaml Bytecode to WASM 130 about 1 year ago
Wasocaml - OCaml to WasmGC compiler 54 25 days ago

Awesome Wasm / Languages / Python

Pyodide - The Python scientific stack running in the browser 12,273 6 days ago
PyScript - Run Python Code and the scientific stack in the browser
python-wasm - WebAssembly CPython for Node.js and the browser built using Zig (no emscripten)
Rocket game - Rocket, written in Rust, compiled to WASM, running in Python 23 over 1 year ago (using )

Awesome Wasm / Languages / Prolog

Ciao Prolog Playground (WASM)

Awesome Wasm / Languages / Rust

Rusty Web
parity-wasm - WebAssembly serialization/deserialization library in pure Rust 395 about 2 years ago
wasmi - WebAssembly interpreter in pure Rust 1,614 6 days ago
awesome-rust 47,045 2 days ago ( )
Ruffle - Adobe Flash Player emulator written in the Rust 15,702 4 days ago

Awesome Wasm / Languages / WASM-like

wah - a slightly higher-level language superset of webassembly 158 over 5 years ago
Walt - Alternative Syntax for WebAssembly 4,643 almost 2 years ago
wam - Superset of wast syntax that is more convenient for humans to write directly 64 over 5 years ago

Awesome Wasm / Languages / Other

Lys - a functional language that compiles to WebAssembly 420 2 months ago
Never - statically typed, embeddable functional programming language 435 6 months ago

Awesome Wasm / Tools / Editor

vim-wasm - WebAssembly filetype support for Vim 83 12 months ago
vscode wast - WebAssembly(S-expression) support
Atom language-wast
vscode-wasm - WebAssembly toolkit for vscode

Awesome Wasm / Tools / Kits

WABT - A suite of tools that help working with WASM binary files 6,881 9 days ago
webassembly-binary-toolkit - The WABT tools installable as an npm package 59 over 6 years ago
Owi - A WebAssembly toolkit and cross-language bug-finder 135 5 days ago

Awesome Wasm / Gists

Standalone WebAssembly Example
Using WebAssembly in LLVM
Calling alert from WebAssembly (WASM)

Awesome Wasm / Examples

The Windows 10 calculator running in WebAssembly
webassembly-examples 1,135 about 1 month ago
Factorial in WebAssembly
WebAssembly vs. JavaScript Animation Demo 216 over 7 years ago
Web DSP 1,473 over 7 years ago
wasm-intro - Tiny WebAssembly Examples with LLVM/clang and C 43 over 7 years ago
webassembly-examples - From Simple To Complex. 203 almost 7 years ago
D3 force layout with WebAssembly 106 about 7 years ago
wasmBoy - Gameboy Emulator Library written in Web Assembly using AssemblyScript 1,399 over 1 year ago
CppOpenGLWebAssemblyCMake - C++/OpenGL/OpenAL/GLFW/GLM based app built with CMake to native or WebAssembly 73 over 2 years ago
WebAssembly A* Pathfinding 427 over 1 year ago
HackerNews PWA with wasm-bindgen 14 over 5 years ago
TiDB playground - writing SQL in an in-browser golang database in WebAssembly
Made With Webassembly - Showcase of Awesome Production Applications, Side Projects, and Use Cases Made With Webassembly
HandyTools - A tool providing features like base64 encoding/decoding, Unix time conversion, etc. Written in Go + WebAssembly 66 over 3 years ago
WAsm Heatmap - Creates a heatmap layer for Leaflet.js with Go+WebAssembly+WebWorkers
Modfy - Wasm Video Transcoder
Gameboy emulator written in Rust and compiled to WebAssembly 110 about 1 year ago
Boytacean - A fast Game Boy Emulator written in Rust and running in the Browser using WebAssembly 623 4 days ago

Awesome Wasm / Benchmarks

WebAssembly Video Editor
3D skeletal animation system
Cubes JS -
JavaScript vs WebAssembly easy benchmark
Performance Testing Web Assembly vs JavaScript
A Real-World WebAssembly Benchmark by PSPDFKit
Wasm vs. PNaCl Performance Benchmark by PDFTron
JavaScript vs WebAssembly running in Browser/Nodejs

Awesome Wasm / Job Boards

WebAssembly Jobs

Awesome Wasm / Articles

WebAssembly Fixed-Width SIMD from C# (2023)
WebAssembly and SIMD: A Match Made in the Browser (2020)
WebAssembly at eBay: A Real-World Use Case (2019)
How We Used WebAssembly To Speed Up Our Web App By 20X (Case Study) (2019)
Practice your Go WebAssembly with a Game (2019)
The world's easiest introduction to WebAssembly with Golang (2019)
Why WebAssembly? (2018)
Writing WebAssembly By Hand (2018)
Ruby on WebAssembly (2018)
Optimizing WebAssembly Startup Time - 4 simple yet effective solutions to reduce load time. (2018)
WebAssembly: A New Hope (2017)
Creating a WebAssembly module instance with JavaScript (2017)
Memory in WebAssembly (and why it's safer than you think) (2017)
WebAssembly table imports… what are they? (2017)
WebAssembly Demystified (2017)
A cartoon intro to WebAssembly (2017)
Creating and working with WebAssembly modules (2017)
What makes WebAssembly fast? (2017)
Where is WebAssembly now and what's next? (2017)
Web Games Platform: Newest Developments (2017)
Why WebAssembly is Faster Than asm.js (2017)
Firefox 52: Introducing Web Assembly, CSS Grid and the Grid Inspector (2017)
Previewing the WebAssembly Explorer (2017)
Why WebAssembly is a game changer for the web — and a source of pride for Mozilla and Firefox (2017)
Introduction to WebAssembly (2017)
What is WebAssembly? (2015)
7 Things You Should Know About WebAssembly (2015)
WebAssembly: a binary format for the web (2015)
Compiling to WebAssembly: It's Happening! (2015)
The Future of Programming: WebAssembly & Life After JavaScript (2015)
WebAssembly Everywhere

Awesome Wasm / Video

The Complete WebAssembly Course - From Beginner to Advanced! (2024-01)
What is WebAssembly? By Some of its Creators (2019-08)
Level up Your Web Apps with WebAssembly (PerfMatters Conference 2019-04)
Go WebAssembly Tutorial - Building a Calculator (2018-08)
Get Going with WebAssembly (2018-08)
Build the future of the web with WebAssembly and more (Google I/O 2018-05)
WebAssembly and the Death of JavaScript? (2018-02)
Practical WebAssembly (2017-12)
Real World WebAssembly (Chrome Dev Summit 2017-10)
Andreas Rossberg - Bringing the Web up to Speed with WebAssembly (2017-06)
Compiling for the Web with WebAssembly (Google I/O 2017-05)
A Cartoon Intro to WebAssembly (2017-05)
WebAssembly Demystified (2017-05)
Meeting C++ 2016: Implementing a web game in C++14 - Kris Jusiak (2017-01)
CppCon 2016: Dan Gohman "C++ on the Web: Let's have some serious fun." (2016-10)
WebAssembly and the Future of the Browser (2016-09)
NYLUG Presents: Luke Wagner -on- WebAssembly: A New Compiler Target For The Web (2016-06)
Web Assembly - Nick Bray - BlinkOn 5 - (2015-11)
Web Assembly - Nick Bray - GOTO 2015 - (2015-10)
From ASM.JS to WebAssembly (2015-06)
A Talk Near the Future of Python (a.k.a., Dave live-codes a WebAssembly Interpreter)

Awesome Wasm / Slides

Web Assembly for Dumb People (2020)
Boost your web application with C++ (2016)
WebAssembly (Do we all have to learn C now?)
WebAssembly (2016)
WebAssembly overview (2016)
Emscripten and WebAssembly (2015)
An intro to WebAssembly (2015)

Awesome Wasm / Community

W3C Community Group
Stack Overflow
Twitter
Slack: WebAssembly Developers
WasmWeekly - a weekly newsletter
WebAssembly AMA

Awesome Wasm / Books

WebAssembly Reference Manual 601 almost 2 years ago
Learn WebAssembly - Build web applications with native performance using Wasm and C/C++
Programming WebAssembly with Rust - Unified Development for Web, Mobile, and Embedded Applications
Rust and WebAssembly
WebAssembly in Action - Introduces the WebAssembly stack and walks you through the process of writing and running browser-based applications
Level up with WebAssembly - A practical guide to building WebAssembly applications
Hands-On Game Development with WebAssembly

Awesome Wasm / Papers

Bringing the Web up to Speed with WebAssembly 3,157 8 days ago
The Web Assembles
An Empirical Study of Real-World WebAssembly Binaries: Security, Languages, Use Cases
Not So Fast: Analyzing the Performance of WebAssembly vs. Native Code
Provably-Safe Multilingual Software Sandboxing using WebAssembly
Wasabi: A Framework for Dynamically Analyzing WebAssembly
Wasocaml: compiling OCaml to Webassembly
Owi: Performant Parallel Symbolic Execution Made Easy, an Application to WebAssembly

Awesome Wasm / Demos

Aphrós - finite volume solver for incompressible multiphase flows
Cubes - direct port of the Bullet physics engine
Basic4GL
Symatem - an Ontology Engine, Visualizer, and Editor
Funky Karts
PSPDFKit for Web - a WebAssembly-based PDF viewer with annotation features
Uno Platform Playground - a WebAssembly-based XAML playground
Roslyn Quoter - a WebAssembly-based Roslyn-based C# code quoter
wasmBoy Demo/Debugger - a Gameboy Emulation library written in Web Assembly using AssemblyScript
DOOM 3 - Doom 3 WebAssembly port
Squoosh.app - Compress and compare images with different codecs, right in your browser
SketchUp - 3D modeling software
WebViewer - a CAD, MS Office, and PDF SDK

Awesome Wasm / Resources in other languages / Russian

KharkivJS #5: Serious JS (Kharkiv, Ukraine, November 7, 2015) - WebAssembly: new era of Web (video)
OdessaJS 2017 - Real world WebAssembly (video)
Урок-введение по WebAssembly на примере игры "Жизнь" (article)

Awesome Wasm / Resources in other languages / Simplified Chinese

WebAssembly 中文网
WebAssembly 中文社区
WebAssembly-cn Orgnization
WebAssembly资料精选 - 中文版 1,015 about 1 month ago
WebAssembly标准入门 - 第一本中文图书 1,015 about 1 month ago
C/C++面向wasm编程 - 第一本中文开源图书 1,365 7 months ago
《深入浅出 WebAssembly》

Awesome Wasm / Resources in other languages / Spanish

Compilando para el navegador con WebAssembly (article)

Backlinks from these awesome lists:

More related projects: