Awesome Lists

awesome-wasm-langs

by appcypher

awesome listpushed almost 2 years ago

😎 A curated list of languages that compile directly to or have their VMs in WebAssembly

AI summary

WebAssembly languages

A curated list of programming languages that compile to or run on WebAssembly

stars
4.2K
forks
199
watching
112
awesome lists
3
entries
160
View on GitHub

Embed the badge

Show how many awesome lists link to your project. The count updates automatically.

Awesome Lists badge
Markdown
[![Awesome Lists Badge](https://awesome.facts.dev/shield/appcypher/awesome-wasm-langs/links.svg)](https://awesome.facts.dev/awesome/appcypher/awesome-wasm-langs)
HTML
<a href="https://awesome.facts.dev/awesome/appcypher/awesome-wasm-langs"><img src="https://awesome.facts.dev/shield/appcypher/awesome-wasm-langs/links.svg" alt="Awesome Lists Badge" /></a>
Image URL
https://awesome.facts.dev/shield/appcypher/awesome-wasm-langs/links.svg

What's in the list

160 links in 70 sections, with live GitHub stats.activeno commit in 2y

Contents / .Net top⇈

  • Mono

    an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime. For a real-work example, see this repository which contains the . The application is built using standard C++ 11 and C++/CX, with a calculation engine that dates back from 1995. Made by possible with mono via

  • Blazor

    a web UI framework using C#/Razor and HTML, running client-side via WebAssembly. Source is maintained on repo

  • Bolero

    Bolero brings Blazor to F# developers with an easy to use Model-View-Update architecture, HTML combinators, hot reloaded templates, type-safe endpoints, advanced routing and remoting capabilities, and more

  • NativeAOT-LLVM

    an experimental fork of the CoreCLR .NET runtime that compiles .NET applications into single-file executables, with the primary target being WASM

Contents / Ada top⇈

  • adawebpack

    GNAT-LLVM compiler for WebAssembly target, GNAT Run Time Library and AdaWebPack bindings for Web API

  • adagl

    Multiplatform Ada/OpenGL bindings (ported to native/OpenGL, A2JS/WebGL and WASM/WebGL)

  • adawebui

    GUI based on adawebpack.\

Contents / AssemblyScript top⇈

Contents / Ballerina top⇈

Contents / BASIC top⇈

  • basic_rs

    a BASIC Interpreter/Compiler for the Original Dartmouth Version written in Rust. Also provides tool which compiles BASIC to WebAssembly using binaryen

  • basicwasm

    a GWBasic interpreter compiled to WASM with a Web UI

  • EndBASIC

    BASIC environment with a REPL, a web interface, a graphical console, and RPi support written in Rust. You can try it out

  • gobasic

    a BASIC interpreter written in Golang

Contents / Brainfuck top⇈

  • BrainfuckWebassembly

    a simple Brainfuck-to-wasm compiler in one function

  • Brainfuck2Wasm

    a Brainfuck-to-wasm compiler and playground

  • BrainfuckRsWasm

    a Brainfuck interpreter written in Rust and compiled to WebAssembly

  • Brainfuck Wa-lang

    a Brainfuck interpreter written in and compiled to WebAssembly

  • bfwasm

    A non-optimizing Brainf_ck to WebAssembly compiler with WASI support

Contents / C top⇈

  • Emscripten

    an LLVM-to-JavaScript/Webassembly compiler. It takes LLVM bitcode - which can be generated from C/C++, using llvm-gcc (DragonEgg) or clang, or any other language that can be converted into LLVM - and compiles that into JavaScript or wasm

  • Cheerp

    an open-source, enterprise-grade C/C++ compiler for Web applications. Cheerp can compile virtually any C/C++ code to WebAssembly and/or JavaScript

Contents / c4wa top⇈

  • c4wa

    main repository

Contents / Clean top⇈

  • ABC interpreter

    interpreter for Clean's intermediate language ABC, with a WebAssembly version

  • iTasks

    integration of the above ABC interpreter with browser applications

Contents / Co top⇈

  • Co

    main repository

Contents / COBOL top⇈

  • Cobaul

    toolchain used to

Contents / Crystal top⇈

  • Crystal

    main repository

  • POC PR

    PR adding initial support for WebAssembly

Contents / Cyber top⇈

  • Cyber

    project repository

Contents / D top⇈

  • LDC

    LLVM-based D compiler, which can generate WASM since version 1.11.0

Contents / Dart top⇈

  • sdk

    The Dart SDK, including the VM, dart2js, core libraries, and more

  • language

    Design of the Dart language

  • Use via Flutter

    How to compile Dart to WebAssembly for a Flutter Web application

Contents / Eclair top⇈

  • eclair-lang

    The Eclair compiler, which can compile Eclair code to LLVM IR and WASM

Contents / Eel top⇈

  • eel-wasm

    Compiles Milkdrop flavored Eel to Wasm in the browser. Intended to become a component of , a WebGL implementation of the Milkdrop Visualizer

Contents / Elixir top⇈

  • Lumen

    An alternative BEAM implementation (with AOT compiler) designed for WebAssembly

Contents / Faust top⇈

  • Faust

    main repository

Contents / Forest top⇈

Contents / Forth top⇈

  • WASM Forth

    Forth implementation for wasm

  • WAForth

    Bootstrapping Dynamic Forth Interpreter/Compiler for & in WebAssembly

Contents / Go top⇈

  • Go

    main repository

  • TinyGo

    a subset of Go targeted to embedded devices and WebAssembly

Contents / Grain top⇈

Contents / Haskell top⇈

  • Asterius

    a Haskell to WebAssembly compiler

  • DHC

    a Haskell compiler that accepts only a tiny subset of the language and produces WebAssembly binaries

  • haskell-wasm

    Haskell WebAssembly Toolkit. It includes Language helpers and a fully spec-compatible WASM interpreter

  • wasm-cross

    A toolchain for cross compiling C and Haskell to WebAssembly, using the WebGHC and LLVM

Contents / Janet top⇈

  • Janet

    main repository. You can try it out

Contents / Java top⇈

  • TeaVM

    an ahead-of-time translating compiler (transpiler) of Java bytecode, that's capable of emitting JavaScript and WebAssembly

  • JWebAssembly

    A Java bytecode to WebAssembly compiler. It can generate the WebAssembly binary or text format. It is written in Java itself and can be integrated with other Java build tools

  • Bytecoder

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

  • CheerpJ

    A Java compiler for the web that converts any Java client application into standard HTML5/WebAssembly/JavaScript

  • Rise JVM

    Rise JVM is a minimal Java VM based on WASM. You can try it out

Contents / JavaScript top⇈

  • Duktape

    an embeddable Javascript engine, with a focus on portability and compact footprint that's capable of being run in the browser via WebAssembly

  • Javy

    a JavaScript to WebAssembly toolchain, capable of generating WASI-compatible modules from JS by embedding the QuickJS engine

  • SpiderMonkey

    experimental Rust bindings and generic builtins for SpiderMonkey for building WASI-compatible modules from JavaScript

  • quickjs-emscripten

    Safely execute untrusted Javascript in your JS/TS, and execute synchronous code that uses async functions

  • wasmedge-quickjs

    A high-performance, secure, extensible, and OCI-complaint JavaScript runtime for WasmEdge. Features TCP/UDP support via WasmEdge Sockets

  • Boa

    an embeddable and experimental Javascript engine written in Rust. You can try it out

  • goja

    an implementation of ECMAScript 5.1 in pure Go with emphasis on standard compliance and performance

  • otto

    a JavaScript parser and interpreter written natively in Go

Contents / Julia top⇈

Contents / KCL top⇈

  • KCLVM

    LLVM-based KCL compiler, which can generate WASM

Contents / Kotlin top⇈

Contents / Kou top⇈

  • Kou

    main repository

Contents / LabVIEW top⇈

  • G Web Development Software

    A standalone development environment implementing a subset of the G dataflow graphical programming language to create web-based user interfaces for test and measurement applications

  • Vireo

    An open-source runtime capable of running the virtual instrument assembly representation of the G dataflow graphical programming language created by G Web Development Software

Contents / Lisp top⇈

  • Femto Emacs

    translates Low Level Lisp into WebAssembly

  • Wisp

    Wisp is a Lisp system for WebAssembly and native execution

Contents / Lobster top⇈

Contents / Lox top⇈

  • loxcraft

    uses WebAssembly for its

Contents / Lua top⇈

  • WasmLua

    a Lua VM running in the browser

  • Luwa

    a Lua-to-wasm JIT compiler

  • Wasmoon

    a high level Lua VM with JS bindings

  • Wasm2Lua

    can compile WebAssembly modules to pure Lua (or with FFI LuaJIT for extra speed)

  • DCLua

    a Lua 5.3 VM and compiler written in Go. It's intended to allow easy embedding into Go programs, with minimal fuss and bother

  • erdian718/lua

    (aka ofunc/lua) - a fork of DCLua, featuring IO capabilities, HTTP client, IoC, and more

  • GopherLua

    a Lua5.1(+ goto statement in Lua5.2) VM and compiler written in Go. It provides Go APIs that allow you to easily embed a scripting language to your Go host programs

  • Pluto

    a superset of Lua 5.4 with a focus on general-purpose programming. You can try it out

  • PlutoScript

    Pluto's extension aimed for web scripting. Provides JS interop and ability to use Pluto anywhere JavaScript works

Contents / Lys top⇈

  • Lys

    main repository

Contents / MoonBit top⇈

  • MoonBit

    main website. You can try the language out

  • Core library

    open-sourced standard library. Compiler source code is not available yet

Contents / Nelua top⇈

Contents / Nerd top⇈

  • Nerd

    main repository

Contents / Never top⇈

Contents / Nim top⇈

  • nlvm

    LLVM-based compiler for Nim with a WebAssembly target supported out of the box

  • nwasm

    a webassembly backend for nim

  • Nim wasm helpers

    a helper to set up a VM configured to build WebAssembly code using Nim

Contents / Ocaml top⇈

  • Ocaml

    a fork of main repo containing work on OCaml to wasm compilation

Contents / Pascal top⇈

  • Free Pascal

    Free Pascal compilation target and Pascal-to-Javascript runtime

Contents / Perl top⇈

  • WebPerl

    Perl 5 in the browser

Contents / PHP top⇈

  • PIB

    a PHP runtime in the browser

  • PHP WASM

    maintained fork of PIB with PHP 8 support based on the work of

  • WebAssembly Language Runtimes

    up-to-date PHP (including php-cgi) prebuilt for WASI

Contents / Plorth top⇈

  • Plorth

    main repository

Contents / Poetry top⇈

  • Poetry

    main repository

Contents / Python top⇈

  • Pyodide

    a port of Python to WebAssembly that includes the core packages of the scientific Python stack (Numpy, Pandas, matplotlib). Objects transparently convert and share between Python and Javascript

  • MicroPython

    a lean and efficient Python implementation for microcontrollers and constrained systems

  • RustPython

    A Python 3 interpreter written in Rust. Check the demo

  • RPython

    A RPython (PyPy's Restricted Python) to WebAssembly compiler

  • TPython

    Pythonic++ (a "dialect" of C++) to WebAssembly compiler

  • micropython-wasm

    MicroPython build which features wide JS interop, e.g. waiting for JS promises

  • WebAssembly Language Runtimes

    up-to-date CPython prebuilt for WASI

Contents / Prolog top⇈

  • SWI-Prolog port to WebAssembly

    a port of SWI-Prolog to WebAssembly. SWI-Prolog is a free implementation of the programming language Prolog commonly used for teaching and semantic web applications

  • Ciao Prolog

    includes a WebAssembly compilation target based on Emscripten. Ciao Prolog is a modern Prolog implementation designed to be portable, extensible and modular. Check the playground

Contents / R top⇈

  • WebR

    R in the Browser. You can try it out

Contents / Rego top⇈

  • OPA-Wasm

    Compilation and evaluation of Rego policies using Wasm

  • npm-opa-wasm

    NPM module providing an SDK for using Wasm compiled OPA policies

  • rust-opa-wasm

    A crate to use OPA policies compiled to Wasm

  • dotnet-opa-wasm

    Call OPA policies in Wasm from C# .NET Core

  • python-opa-wasm

    OPA Wasm SDK for Python

  • java-opa-wasm

    OPA Wasm SDK for Java

Contents / Ring top⇈

  • Ring

    main repository. You can try it out

  • WASM apps in Ring

    list of demo web applications implemented in Ring

Contents / Roc top⇈

  • roc

    main repository. You can try it out

  • basic-cli

    a Roc to work with files, commands, HTTP, TCP, command line arguments, etc

  • basic-webserver

    a basic Web Server for Roc

Contents / Ruby top⇈

  • Wruby

    Web ruby - a port of minimal ruby (mruby)

  • run.rb

    run.rb - allows you to run Ruby code in the browser

  • Artichoke

    a Ruby implementation written in Rust and Ruby. You can try it out here:

  • ruby.wasm

    a collection of "official" WebAssembly ports of the CRuby. You can try it out

  • rlang

    Rlang - a (subset of) Ruby to WebAssembly compiler

  • cry-wasm

    speeds up Ruby code using Crystal. By applying simple type restrictions to Ruby code, convert it to Crystal code, compile it to WebAssembly, and call it with Wasmer or Wasmtime

  • Ruvy

    toolchain for bundling ruby.wasm pre-initialized and bundled with Ruby code

  • WebAssembly Language Runtimes

    up-to-date MRI Ruby prebuilt for WASI

Contents / Rust top⇈

  • Rust wasm32-unknown-unknown target

    Rust compiler backend for WebAssembly (without the need for Emscripten)

  • Wargo

    a simple npm package that makes compiling Rust to WebAssembly easy on macOS or Linux

  • RustWasmLoader

    A simple Webpack loader that shells out to cargo to build a Rust project targeting WebAssembly

  • CargoWeb

    This cargo subcommand aims to make it easy and convenient to build, develop and deploy client-side Web applications written in Rust

  • Wasm-Bindgen

    A library and a CLI for Rust that facilitate high-level interactions between wasm modules and JavaScript

  • Woz

    Woz is a WebAssembly progressive web app (PWA) toolchain for building and deploying performant mobile apps with Rust. Distributing your app is as simple as sharing a hyperlink

Contents / Scheme top⇈

  • Schism

    Schism is an experimental self-hosting compiler from a subset of R6RS Scheme to WebAssembly. Development so far has focused on features necessary for self-hosting. The compiler itself is written in, and compiles, a very small subset of Scheme

  • scheme.wasm

    An R7RS Scheme implemented in WebAssembly. You can try it out

  • Guile Hoot

    a Scheme to WebAssembly compiler backend for GNU Guile and a general purpose WASM toolchain

Contents / Scopes top⇈

Contents / Swift top⇈

Contents / Tcl top⇈

  • Wacl

    A Tcl distibution for WebAssembly or Javascript. Features JS/DOM bindings. You can try it out

Contents / Theta top⇈

Contents / TurboScript top⇈

Contents / V top⇈

  • V

    main repository. You can try it out

Contents / Virgil top⇈

  • Virgil

    main repository

Contents / Wa top⇈

Contents / Wase top⇈

  • Wase

    main repository

Contents / WebAssembly top⇈

Contents / Wonkey top⇈

  • Wonkey

    main repository. Check the demo games

Contents / xcc top⇈

Contents / Zig top⇈

More related projects

Add a GitHub project

Missing a project or an awesome list? Paste its GitHub URL and we fetch it right away.