Skip to content
56

Awesome Wasm

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

9.6k stars595 forks285 entriesLast push Nov 15, 2024 (1 year ago)License CC0-1.0

This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.

General Resources

Official Site

GitHub

WebAssembly MDN

In 3 lists

WebAssembly Wikipedia

WebAssembly Specification

In 2 lists

Online Playground

WebAssembly Explorer

Visualize and debug WebAssembly binaries.

In 2 lists

Assembleash - WebAssembly and Typescript-like languages playground

Wat2Wasm

Wasm2Wat

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)

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.

Man page for Blazor and WebAssembly.

In 2 lists

Compilers

Emscripten - LLVM-based project that compiles C and C++

In 2 lists

Binaryen - Binaryen is a compiler and toolchain infrastructure library for WebAssembly, written in C++

Compiler infrastructure and toolchain library for WebAssembly, for the wasm-opt tool to reduce .wasm file size.

In 3 lists

Rust - A safe, concurrent, practical language

ilwasm - CIL to WebAssembly compiler

WebAssembly for the GNU Toolchain

faust2 - Functional programming language for signal processing and sound synthesis

Asterius - A Haskell to WebAssembly compiler

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.

Bytecoder - A Rich Domain Model for Java Bytecode and Framework to interpret and transpile it to other languages such…

Bytecoder is a Rich Domain Model for Java Bytecode and Framework to interpret and transpile it to other languages such as JavaScript, OpenCL or WebAssembly

In 2 lists

AssemblyScript - Definitely not a TypeScript to WebAssembly compiler

In 3 lists

Non-Web Embeddings

WASI - The WebAssembly System Interface

wasm3 - The fastest WebAssembly interpreter (x86, x64, ARM, MIPS, Xtensa)

A lightning fast WebAssembly interpreter designed for embedded devices, compatible with both ESP's.

In 4 lists

fizzy - Fast, deterministic, and pedantic WebAssembly interpreter written in clean C++17

wamr - WebAssembly Micro Runtime (WAMR) is an AOT/JIT/interpreter focusing on small footprint

WebAssembly Micro Runtime (WAMR).

In 2 lists

wac - WebAssembly in C (x86)

Asmble - WebAssembly on the JVM

wasmachine - WebAssembly in a FPGA

Olin - WebAssembly on the server

Wasmer - Standalone JIT WebAssembly Runtime

A safe and fast WebAssembly runtime supporting WASI and Emscripten

In 3 lists

Wasmer for Go

Wasmer for Python

Wasmer for PHP

Wasmer for Ruby

Wasmer for Postgres

warpy - WebAssembly in RPython

pywebassembly - WebAssembly interpreter written in pure Python

py-wasm - WebAssembly interpreter written in pure Python

pywasm - WebAssembly interpreter written in pure Python.

wabt - WebAssembly toolkit and interpreter written in C++

The WebAssembly Binary Toolkit, for the wasm-strip and wasm-objdump tools to reduce .wasm file size.

In 4 lists

Binaryen - Binaryen is a compiler and toolchain infrastructure library for WebAssembly, written in C++

Compiler infrastructure and toolchain library for WebAssembly, for the wasm-opt tool to reduce .wasm file size.

In 3 lists

wagon - WebAssembly interpter written in Go

WebAssembly 解释器

In 3 lists

wasmtime - Standalone WebAssembly Runtime

. Standalone JIT-style runtime for WebAssembly, using Cranelift.

In 2 lists

embly - A serverless web application framework for collaboration and scale

SSVM - WebAssembly Virtual Machine for AI and Blockchain applications

Manticore - Symbolic execution engine with support for WebAssembly

Symbolic execution tool for binaries (x86, x86_64 and ARMV7) and Ethereum smart contract bytecode.

In 4 lists

WAVM - WebAssembly virtual machine, designed for use in non-web applications

WAVM is a WebAssembly virtual machine, designed for use in non-web applications.

In 3 lists

windtrap - A WASM VM written in Elixir

Extism - the universal plug-in system to make your software programmable

Owi - a Wasm interpreter written in OCaml

Owi is a toolchain for working with WebAssembly (Wasm) in OCaml, featuring a powerful, parallel symbolic execution engine for Wasm. It also provides frontends for compiling and analyzing C and Rust programs.

In 4 listsDetails

Projects >AI

Voy - A WASM vector similarity search engine written in Rust

In 2 lists

Projects >Apache Server

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

Projects >Web frameworks-libraries

asdom - DOM bindings for AssemblyScript, write DOM code just like in TypeScript, but compiled to WebAssembly, by LUME

asm-dom - A minimal WebAssembly virtual DOM to build C++ SPA

A minimal WebAssembly virtual DOM to build C++ SPA (Single page applications)

In 2 lists

Blazor - Microsoft's web UI framework using C#/Razor and HTML, running client-side via WebAssembly

Official website of Blazor, from Microsoft.

In 2 lists

Yew - Rust framework for making client web apps

Perspective - Streaming pivot visualization via WebAssembly

go-vdom-wasm - Webassembly VDOM to create web application using Golang(experimental)

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*

Projects >Data processing

jq-web - the JSON processing tool jq ported to the web with Emscripten

jq itself compiled to JavaScript with emscripten. There's also an alternative at jqdash.

In 2 lists

Projects >WebGL

ammo.js - direct port of the Bullet physics engine to JavaScript using Emscripten

Direct port of the Bullet Physics engine to JavaScript using Emscripten.

In 7 listsDetails

glas - WebGL in WebAssembly with AssemblyScript, by LUME

Particle System - an experiment designed to benchmark web technologies: ES6, Emscripten and Web Assembly

Oryol - a small, portable 3D coding framework written in C++

Projects >webpack

wasm-loader - WASM webpack loader

cpp-wasm-loader - C/C++ to WASM Webpack loader optimized for small bundle sizes

Projects >Browserify

rustify - Rust WebAssembly transform for Browserify

Projects >Node.js

webassembly - A minimal toolkit and runtime to produce and run WebAssembly modules.

用于生成和运行 WebAssembly 模块的最小工具包和运行时。

In 2 lists

wasm-pack - pack up the wasm and publish it to npm!

go-wasm-cli - Minimalistic cli to create and run (with hot reload) Go application targeting WASM

xwasm - WebAssembly Packager and WASM tooling for modern frontend

Projects >.NET

Uno Platform - An implementation of Microsoft's UWP APIs for iOS/Android/WebAssembly/Linux/macOS, using C#/XAML on top…

Ooui.Wasm - A Xamarin.Forms backend for WebAssembly, using C#/XAML on top of mono-wasm

A small cross-platform UI library that brings the simplicity of native UI development to the web.

In 4 lists

Projects >Others

wasm-init - Work environment and code generator for WebAssembly projects

wasm - Python WebAssembly decoder & disassembler library

MXnet.js - ASM.js build of MXNet, deep learning (neural nets and so) library

YAKC - a multi-system 8-bit emulator written in C++

Eufa - a high efficient utility functions library written in webassembly

Argon2 in browser - Argon2 library compiled for browser runtime

cld3-asm - Wasm based JS binding for Google compact language detector 3

hunspell-asm - Wasm based JS binding for Hunspell spellchecker

wasm-bindgen - Interoperating JS and Rust code

ewasm - Ethereum flavored WebAssembly

In 2 lists

webm-wasm - Create webm videos in JavaScript via WebAssembly

wasm-pdf – Generate PDF files with JavaScript/WASM

Generates PDF files with JavaScript and WASM (WebAssembly)

In 2 lists

go-web-app – Quickly setup Go + WebAssembly frontend apps

gotemplate.io – Quicky test and visualize your Go templates live

Online tool to preview text/template templates live.

In 2 lists

WasmBench - A large dataset of real-world WebAssembly binaries, collected from the Web, GitHub, NPM and more

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.

crypto-js-wasm - An alternate to crypto-js implemented with WebAssembly and ESM

ssheasy - An online ssh and sft client

SSH client that runs in the browser and implements WebAuthn based SSH authentication. WebAuthn authentication is implemented by implementing OpenSSH's [email protected] key type in go and compiling it to WebAssembly.

In 2 lists

Languages >Esoteric

funge.js - A Befunge JIT

Languages >Forth

WAForth - Bootstrapping Dynamic Forth Interpreter/Compiler for & in WebAssembly

Languages >Go

Go - Go programming language WebAssembly support

List of projects on the Go community wiki.

In 10 listsDetails

Compiling Go to WebAssembly

VueGo - WebAssembly Vue.js wrapper written in Go

Languages >JavaScript-family

AssemblyScript - Definitely not a TypeScript to WebAssembly compiler

In 3 lists

Getting Started with AssemblyScript

TurboScript - A TypeScript-like language that compiles to asm.js and WebAssembly (unmaintained)

speedy.js - Accelerate JavaScript Applications by Compiling to WebAssembly (unmaintained)

Languages >Kotlin

Kotlin/Wasm (Kotlin WebAssembly)

Languages >Lua

wasm_lua - Lua VM running in a WASM environment

wasmoon - a high level Lua VM with JS bindings

Languages >OCAML

ocamlrun-wasm - OCaml Bytecode Interpreter in WASM

wasicaml - Translate OCaml Bytecode to WASM

Wasocaml - OCaml to WasmGC compiler

Languages >Python

Pyodide - The Python scientific stack running in the browser

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

(using PPCI)

Languages >Prolog

Ciao Prolog Playground (WASM)

Languages >Rust

Rusty Web

parity-wasm - WebAssembly serialization/deserialization library in pure Rust

wasmi - WebAssembly interpreter in pure Rust

. WebAssembly interpreter.

In 2 lists

awesome-rust

(has scattered references to targeting WASM)

In 5 listsDetails

Ruffle - Adobe Flash Player emulator written in the Rust

Ruffle is an Adobe Flash Player emulator. Ruffle targets both the desktop and the web using WebAssembly.

In 3 lists

Languages >WASM-like

wah - a slightly higher-level language superset of webassembly

Walt - Alternative Syntax for WebAssembly

zap: Walt is a JavaScript-like syntax for WebAssembly text format :zap:

In 2 lists

wam - Superset of wast syntax that is more convenient for humans to write directly

Languages >Other

Lys - a functional language that compiles to WebAssembly

Never - statically typed, embeddable functional programming language

Tools >Editor

vim-wasm - WebAssembly filetype support for Vim

vscode wast - WebAssembly(S-expression) support

Atom language-wast

vscode-wasm - WebAssembly toolkit for vscode

Tools >Kits

wabt - WebAssembly toolkit and interpreter written in C++

The WebAssembly Binary Toolkit, for the wasm-strip and wasm-objdump tools to reduce .wasm file size.

In 4 lists

webassembly-binary-toolkit - The WABT tools installable as an npm package

Owi - a Wasm interpreter written in OCaml

Owi is a toolchain for working with WebAssembly (Wasm) in OCaml, featuring a powerful, parallel symbolic execution engine for Wasm. It also provides frontends for compiling and analyzing C and Rust programs.

In 4 listsDetails

Gists

Standalone WebAssembly Example

Using WebAssembly in LLVM

Calling alert from WebAssembly (WASM)

Examples

The Windows 10 calculator running in WebAssembly

webassembly-examples

Factorial in WebAssembly

WebAssembly vs. JavaScript Animation Demo

Web DSP

wasm-intro - Tiny WebAssembly Examples with LLVM/clang and C

webassembly-examples - From Simple To Complex.

D3 force layout with WebAssembly

wasmBoy - Gameboy Emulator Library written in Web Assembly using AssemblyScript

CppOpenGLWebAssemblyCMake - C++/OpenGL/OpenAL/GLFW/GLM based app built with CMake to native or WebAssembly

WebAssembly A* Pathfinding

HackerNews PWA with wasm-bindgen

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 +…

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

Boytacean - A fast Game Boy Emulator written in Rust and running in the Browser using WebAssembly

GameBoy Color emulator that runs on the Web using WebAssembly.

In 2 lists

Benchmarks

WebAssembly Video Editor

3D skeletal animation system

Cubes JS

Cubes (WebAssembly)

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

Job Boards

WebAssembly Jobs

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)

(April 5, 2019)

In 2 lists

Practice your Go WebAssembly with a Game (2019)

The world's easiest introduction to WebAssembly with Golang (2019)

In 2 lists

Why WebAssembly? (2018)

Andreas Rossberg, 2018.

In 2 lists

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)

Eric Elliott, 2015.

In 2 lists

7 Things You Should Know About WebAssembly (2015)

Sebastian Peyrott, 2015.

In 2 lists

WebAssembly: a binary format for the web (2015)

Compiling to WebAssembly: It's Happening! (2015)

The Future of Programming: WebAssembly & Life After JavaScript (2015)

Eric Elliott, 2024.

In 2 lists

WebAssembly Everywhere

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)

Johan Brandhorst, 2018.

In 2 lists

Build the future of the web with WebAssembly and more (Google I/O 2018-05)

WebAssembly and the Death of JavaScript? (2018-02)

Colin Eberhardt, 2018.

In 2 lists

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)

Nick Bray, 2015.

In 2 lists

From ASM.JS to WebAssembly (2015-06)

A Talk Near the Future of Python (a.k.a., Dave live-codes a WebAssembly Interpreter)

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)

Community

W3C Community Group

Stack Overflow

Twitter

Slack: WebAssembly Developers

(click here to get an invitation)

WasmWeekly - a weekly newsletter

WebAssembly AMA

Books

WebAssembly Reference Manual

Learn WebAssembly - Build web applications with native performance using Wasm and C/C++

英文

In 3 lists

Programming WebAssembly with Rust - Unified Development for Web, Mobile, and Embedded Applications

Includes a chapter Advanced JavaScript Integration with Yew on creating an app with Yew.

In 3 lists

Rust and WebAssembly

Open-source book describing how to use Rust and WebAssembly together.

In 3 lists

WebAssembly in Action - Introduces the WebAssembly stack and walks you through the process of writing and running…

英文

In 2 lists

Level up with WebAssembly - A practical guide to building WebAssembly applications

Hands-On Game Development with WebAssembly

Papers

Bringing the Web up to Speed with WebAssembly

Andreas Haas, Andreas Rossberg, Derek L. Schuff, Ben L. Titzer, Michael Holman, Dan Gohman, Luke Wagner, Alon Zakai, JF Bastien, 2017.

In 3 lists

The Web Assembles

An Empirical Study of Real-World WebAssembly Binaries: Security, Languages, Use Cases

Aaron Hilbig, Daniel Lehmann, and Michael Pradel, 2021.

In 2 lists

Not So Fast: Analyzing the Performance of WebAssembly vs. Native Code

Abhinav Jangda, Bobby Powers, Emery D. Berger, and Arjun Guha, 2019.

In 2 lists

Provably-Safe Multilingual Software Sandboxing using WebAssembly

Jay Bosamiya, Wen Shih Lim, and Bryan Parno, 2022.

In 2 lists

Wasabi: A Framework for Dynamically Analyzing WebAssembly

Daniel Lehmann and Michael Pradel, 2019.

In 2 lists

Wasocaml: compiling OCaml to Webassembly

Owi: Performant Parallel Symbolic Execution Made Easy, an Application to WebAssembly

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

Hosted on Netlify, demonstrates advanced features from a modern Web Application.

In 3 lists

SketchUp - 3D modeling software

WebViewer - a CAD, MS Office, and PDF SDK

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)

Resources in other languages >Simplified Chinese

WebAssembly 中文网

WebAssembly 中文社区

WebAssembly-cn Orgnization

WebAssembly资料精选 - 中文版

In 2 lists

C/C++面向wasm编程 - 第一本中文开源图书

books: WebAssembly friendly programming with C/C++ -- Emscripten practice

In 4 lists

《深入浅出 WebAssembly》

Resources in other languages >Spanish

Compilando para el navegador con WebAssembly (article)

See category
94

Awesome OpenClaw Skills

VoltAgent/awesome-openclaw-skills

The awesome collection of OpenClaw skills. 5,400+ skills filtered and categorized from the official OpenClaw Skills Registry.🦞

Fresh★ 53k830 entriesPushed today
92

Awesome DeepSeek Harness (DSH) Plugin

awesome-dsh-plugin/awesome-dsh-plugin

A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表

Fresh★ 17k1654 entriesPushed today
91

Awesome Guidelines

Kristories/awesome-guidelines

Programming style, best practices, and coding conventions.

Fresh★ 11k166 entriesPushed 2 days ago
90

Awesome

sindresorhus/awesome

😎 Awesome lists about all kinds of interesting topics [NOTE: Pull requests are temporarily disabled until I have a chance to catch up with the existing ones]

Fresh★ 513k51 entriesPushed 28 days ago
90

Awesome Prompts

ai-boost/awesome-prompts

Curated list of chatgpt prompts from the top-rated GPTs in the GPTs Store. Prompt Engineering, prompt attack & prompt protect. Advanced Prompt Engineering papers.

Fresh★ 9k288 entriesPushed yesterday
90

Awesome README

matiassingers/awesome-readme

A curated list of awesome READMEs

Fresh★ 22k143 entriesPushed yesterday