awesome-wasm-langs
by appcypher
😎 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
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⇈
AssemblyScript
main repository
Contents / Ballerina top⇈
Main repository
Ballerina-to-wasm compiler
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
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⇈
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⇈
ForestLang
main repository
Contents / Forth top⇈
WASM Forth
Forth implementation for wasm
WAForth
Bootstrapping Dynamic Forth Interpreter/Compiler for & in WebAssembly
Contents / Go top⇈
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⇈
julia-wasm
Emscripten & LLVM Julia to WASM compiler
- WebAssemblyCompiler.jl
Julia to Wasm GC compiler via Binaryen
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⇈
- Compile to Wasm
how to compile
- Wasm backend details
how it is implemented, useful for other language implementors
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⇈
Nelua
project repository
Nelua on the Web
Nelua-wasm discussion
Contents / Nerd top⇈
Nerd
main repository
Contents / Never top⇈
Never
project repository
- Never on the Web
Never language demo
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⇈
- Scopes
main repository
Contents / Swift top⇈
- SwiftWasm
GitHub organization
Contents / Tcl top⇈
Wacl
A Tcl distibution for WebAssembly or Javascript. Features JS/DOM bindings. You can try it out
Contents / Theta top⇈
ThetaLang
main repository
Contents / TurboScript top⇈
TurboScript
main repository
Contents / V top⇈
V
main repository. You can try it out
Contents / Virgil top⇈
Virgil
main repository
Contents / Wa top⇈
- Wa/凹è¯è¨€(English)
Design for WebAssembly
- Wa/凹è¯è¨€(ç®€ä½“ä¸æ–‡)
凹è¯è¨€ - 为 WebAssembly 而生
Wa/凹è¯è¨€(仓库)
main repository
Contents / Wase top⇈
Wase
main repository
Contents / WebAssembly top⇈
Wasm3
main repository
- Wasm3 on WAPM
WAPM package
Contents / Wonkey top⇈
Wonkey
main repository. Check the demo games
Contents / xcc top⇈
xcc
main repository
Contents / Zig top⇈
- Zig WebAssembly
documentation on WebAssembly
Nothing in this list matches your filter.
Featured in 3 awesome lists
Each link jumps to the spot where the list mentions awesome-wasm-langs.