WebAssembly WASM

Open-source WebAssembly projects categorized as WASM

WebAssembly (abbreviated WASM) is a binary instruction format for a stack-​based virtual machine. WebAssembly is an open standard that defines a portable binary-code format for executable programs, and a corresponding textual assembly language, as well as interfaces for facilitating interactions between such programs and their host environment.

Top 15 WebAssembly WASM Projects

  • assemblyscript

    A TypeScript-like language for WebAssembly.

    Project mention: Ezno's checker (a Javascript type checker and compiler written in Rust) is now open source | /r/rust | 2023-06-08

    This is kinda the idea behind AssemblyScript, but IIRC it's more of a low-level typescript-ish syntax for WebAssembly.

  • wasmboy

    Game Boy / Game Boy Color Emulator Library, 🎮written for WebAssembly using AssemblyScript. 🚀Demos built with Preact and Svelte. ⚛️

    Project mention: Any Gameboy step by step emulator? | /r/EmuDev | 2023-03-11
  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • raw-wasm

    Raw WebAssembly demos

    Project mention: Web assembly book? | /r/ProgrammingLanguages | 2023-04-21
  • runno

    Browser-based code runner that can be embedded as an iframe or used as a library.

    Project mention: Show HN: I built a WASI playground for running CLI binaries in the browser | news.ycombinator.com | 2022-10-09

    Oh awesome!! I've just added Trealla to my issues list to add it to Runno.

    If you go into settings you can switch stdin echo on/off. I have stdio devices set up to return their file type as "Character Device" (see: https://github.com/taybenlor/runno/blob/main/packages/wasi-m...). It seems like some binaries handle this well and act like they are directly connected to the TTY (e.g. my quickjs example). Not sure how they determine that. I'm very much coming at this from a web-developer interested in WASI direction, and not from any experience with OSes or linux.

  • waforth

    Small but complete dynamic Forth Interpreter/Compiler for and in WebAssembly

    Project mention: Bunch of questions about forth | /r/Forth | 2023-02-23

    Concerning the point 8. There is an online Forth system demo Thurtle (in the browser) with turtle graphics, which is based on WAForth.

  • Uno.Wasm.Bootstrap

    A simple nuget package to run C# code in a WASM-compatible browser

  • Web49

    Web49: WebAssembly Interpeter

    Project mention: Show HN: I wrote a WebAssembly Interpreter and Toolkit in C | news.ycombinator.com | 2023-01-09

    > I developed a unique way to write interpreters based on threaded code jumps and basic block versioning when I made MiniVM (https://github.com/FastVM/minivm). It was both larger and more dynamic than WebAssembly.

    I'd be very interested to read more about this. It looks like you are using "one big function" with computed goto (https://github.com/FastVM/Web49/blob/main/src/interp/interp....). My experience working on this problem led me to the same conclusion as Mike Pall, which is that compilers do not do well with this pattern (particularly when it comes to register allocation): http://lua-users.org/lists/lua-l/2011-02/msg00742.html

    I'm curious how you worked around the problem of poor register allocation in the compiler. I've come to the conclusion that tail calls are the best solution to this problem: https://blog.reverberate.org/2021/04/21/musttail-efficient-i...

  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • scheme

    An R7RS Scheme implemented in WebAssembly

    Project mention: Implementing Cosine in C from Scratch | news.ycombinator.com | 2023-06-05

    I went through the same exercise implementing trig functions for scheme in webassembly...

    It was a rabbit hole for sure


  • wasm2lua

    wasm2lua: converting WASM into Lua

  • xxhash-wasm

    A WebAssembly implementation of xxHash

  • xiaoxuan-vm

    A WebAssembly VM with a full-featured Web UI debugger implemented in Rust.

    Project mention: A zero-dependency WebAssembly VM with a Web GUI debugger implemented in Rust | news.ycombinator.com | 2022-06-10
  • owi

    OCaml WebAssembly Interpreter

    Project mention: OCamlPro/Owi: OCaml WebAssembly Interpreter | news.ycombinator.com | 2022-12-07
  • wasm3_dino_rpi_pico

    WebAssembly Dino game for PPi Pico

  • rabin-wasm

    Rabin fingerprinting implemented in WASM

  • wasmrogue

    A roguelike written in WASM, of all things.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-06-08.

WebAssembly WASM related posts


What are some of the best open-source WASM projects in WebAssembly? This list will help you:

Project Stars
1 assemblyscript 15,578
2 wasmboy 1,284
3 raw-wasm 386
4 runno 363
5 waforth 355
6 Uno.Wasm.Bootstrap 322
7 Web49 307
8 scheme 145
9 wasm2lua 142
10 xxhash-wasm 92
11 xiaoxuan-vm 90
12 owi 66
13 wasm3_dino_rpi_pico 32
14 rabin-wasm 27
15 wasmrogue 4
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives