For a toolkit for building WebAssembly applications, the strongest matches are wazero/wazero (wazero is a pure Go WebAssembly runtime that provides), assemblyscript/assemblyscript (AssemblyScript is a dedicated compiler and tooling suite that) and extism/extism (Extism is a comprehensive cross-language WebAssembly plugin framework with). thedodd/trunk and ballercat/walt round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Explore the best WebAssembly toolkits for your project. We compare top-rated GitHub repositories by activity and features to help you pick the right one.
wazero is a pure Go WebAssembly runtime that compiles and executes Wasm modules without CGO or any external dependencies. It provides a zero-dependency engine that runs on every Go-supported platform, including riscv64, making it a fully self-contained solution for embedding WebAssembly execution inside Go applications. The runtime offers two execution modes: an ahead-of-time compiler that translates WebAssembly modules into platform-specific machine code for near-native performance, and an interpreter that executes bytecode directly for maximum portability across architectures. Each module i
wazero is a pure Go WebAssembly runtime that provides a zero-dependency engine for compiling and executing Wasm modules inside Go applications, with support for WASI and host integration, but it focuses on runtime execution rather than offering CLI tooling or compilation from source code to Wasm.
AssemblyScript is a compiler and tooling suite used for WebAssembly module development. It converts a subset of TypeScript syntax into binary modules to achieve high execution speeds and cross-platform binary execution. The project focuses on translating typed source code into the compact binary format required by WebAssembly runtimes. This allows for the movement of computationally heavy logic into binary modules for browser performance optimization and execution across different operating systems. The compilation process involves TypeScript-compatible syntax analysis and the generation of
AssemblyScript is a dedicated compiler and tooling suite that converts TypeScript into WebAssembly binary modules, providing a full SDK for Wasm development with CLI tools and WASI support—exactly what this search is for.
Extism is a cross-language WebAssembly plugin framework that lets applications written in any programming language load and execute plugins written in any other language. It provides a universal plugin system where host applications use idiomatic SDKs to load WebAssembly modules, call exported functions, and pass data back and forth, while plugin authors use development kits that handle memory management and host interaction so they can focus on business logic. The framework distinguishes itself through its comprehensive approach to cross-language integration, offering schema-driven binding g
Extism is a comprehensive cross-language WebAssembly plugin framework with SDKs, a runtime, CLI tooling, and host integration APIs that fully support developing and running WebAssembly modules across many languages.
Trunk is a build tool and development server for compiling Rust code to WebAssembly and packaging it for browser deployment. It functions as a web bundler that combines WebAssembly modules, JavaScript, and static files into a deployable web application. The tool provides a local development server utilizing HTTP and WebSocket proxies to enable rapid iteration. This environment includes a file-system watcher that triggers automatic rebuilds and browser reloading when source files are modified. The pipeline handles the conversion of Rust source code into WebAssembly binaries and generates the
Trunk is a build tool and development server that compiles Rust to WebAssembly and bundles it for browser deployment, fitting the need for a WebAssembly toolkit, though it lacks WASI support, its own runtime, and debugging/profiling tools.
Walt is a transpiler and typed language that converts a JavaScript-like syntax into WebAssembly binary format. It functions as a toolchain for developing high-performance logic for browsers and runtimes by translating typed source code into WebAssembly text format. The project includes a bundler-integrated loader that automates the recompilation of source files during the build process. It provides a linear memory manager used to define custom data layouts, structs, and memory allocators within a contiguous heap. The language supports defined function signatures, numeric types, and the abili
Walt is a WebAssembly transpiler that compiles a JavaScript-like language into binary format, serving as a focused toolchain for developing wasm modules but missing runtime, debugging, or WASI support.
Binaryen is a WebAssembly compiler toolchain and optimizer designed to transform, validate, and shrink binary modules. It provides a comprehensive intermediate representation framework that converts binary code into a single-assignment form to enable advanced program analysis and code transformation. The project includes a specialized transformation engine that applies iterative optimization passes to increase execution speed and reduce binary size. Additionally, it functions as a transpiler that translates WebAssembly binary modules into executable JavaScript for environments that lack nativ
Binaryen is a core WebAssembly compiler toolchain and optimizer providing CLI tools, binary analysis, a binary interpreter, and debugging support, making it a comprehensive toolkit for developing and compiling WebAssembly modules that covers most of the requested features.
go-app is a WebAssembly frontend framework and UI library for building progressive web apps using the Go programming language. It enables the execution of Go code directly in the browser to manage application logic and client-side views. The framework provides a component-based system for creating reusable interface elements with declarative syntax and automatic state synchronization. It includes a client-side router that maps URL paths to specific interface components to enable navigation within a single-page application. The project covers general frontend development capabilities, includi
go-app is a Go WebAssembly frontend framework that compiles Go code to run in the browser, fitting the search for WebAssembly toolkits, though it focuses on web app development rather than general-purpose wasm runtime or debugging tools.
Porffor is an ahead-of-time compiler that converts JavaScript and TypeScript source code into native machine code or C binaries. It functions as a native binary generator and transpiler, producing standalone executable files that do not require a runtime or virtual machine. The project translates source code into C language files and WebAssembly binary formats. It includes a direct-to-binary pipeline for TypeScript, allowing for the generation of target executables without a separate transpilation step to JavaScript. The toolset also includes an interactive read-eval-print loop for real-time
Porffor compiles JavaScript and TypeScript directly to WebAssembly and native binaries with a CLI toolchain and debugging support, fitting the request for a development toolkit that produces and works with WebAssembly modules.
Main project page:
Emscripten is the premier SDK and toolchain for compiling C and C++ code to WebAssembly, offering a full compiler (emcc), runtime support, WASI compatibility, and JavaScript integration—making it a comprehensive toolkit that covers nearly all the features you listed.
TeaVM is a Java bytecode transpiler and browser-based JVM runtime that converts compiled Java class files into JavaScript or WebAssembly. It functions as a compiler and build pipeline tool that enables applications written in various JVM languages to execute natively within a web browser. The project distinguishes itself by transforming bytecode directly into optimized web formats without requiring the original source code. It includes a WebAssembly bytecode compiler for high-performance execution and a specialized emulation system to handle asynchronous multithreading within the single-threa
TeaVM compiles JVM bytecode to WebAssembly and includes a browser-based runtime, making it a targeted toolkit for developing WebAssembly modules from JVM languages — it fits the search even though it narrows the source language scope and omits explicit WASI support.
Trunk is a WebAssembly build tool and orchestrator designed to automate the process of transforming Rust source code into deployable web applications. It serves as a frontend bundler that packages WebAssembly binaries along with HTML and static assets for browser deployment. The system utilizes an HTML-driven build orchestration model, using the index HTML file as the primary configuration source to determine entry points and dependencies. It integrates with the Rust compiler and associated toolchains to transform code into optimized binaries and glue code. The tool provides a development en
Trunk is a WebAssembly build tool and orchestrator that automates compiling Rust into WebAssembly and bundling it with assets for the browser, making it a solid fit for developers seeking Rust-to-WASM tooling and CLI workflow support.
wasm-pack is a build tool and workflow orchestrator for compiling Rust code to WebAssembly. It coordinates the compilation process and generates the JavaScript glue code required to execute Rust logic within web browsers and server-side runtimes. The tool manages binary optimization to reduce file sizes and improve execution speed. It also functions as a package manager, bundling compiled WebAssembly modules into archives compatible with JavaScript registries and bundlers. The project covers language interoperability through the automatic generation of TypeScript type definitions. It further
wasm-pack is a dedicated CLI toolchain and workflow orchestrator for compiling Rust to WebAssembly, fitting the need for a toolkit to develop and package WASM modules.
Wasm3 is a WebAssembly interpreter designed for embedded runtime integration. It enables the execution of portable binary logic on microcontrollers and resource-constrained hardware, providing support for modules that utilize the WebAssembly System Interface to interact with system resources. The runtime employs register-based bytecode interpretation and direct-threaded dispatch to map virtual registers to physical CPU registers. It includes a host-call interface to map imports to C functions and utilizes static module validation to ensure bytecode follows specification rules before execution
Wasm3 is a lightweight WebAssembly interpreter designed for embedded systems, serving as a runtime that executes wasm modules with WASI support — it fits the intent of a tool for running WebAssembly, though it lacks compilation and broader development tooling.
Yew is a framework for building front-end web applications using Rust and WebAssembly. It provides a component-based architecture that allows developers to create modular, reusable user interface elements that manage their own state and logic. By compiling code into binary modules, the framework enables high-performance execution within modern browser environments. The framework distinguishes itself through a macro-based markup language that transforms declarative, HTML-like syntax into strongly-typed component structures during compilation. It features a robust server-side rendering engine t
Yew is a Rust framework for building front-end web applications that compile to WebAssembly, giving you a component architecture and toolchain integration—exactly the kind of toolkit this search targets, though it is focused on browser-based UIs rather than general-purpose wasm runtime or WASI support.
The WebAssembly Binary Toolkit is a suite of tools for inspecting, validating, and transforming WebAssembly modules between binary and human-readable representations. It includes a stack-based interpreter for executing modules and a transpiler that converts binary files into C source code and headers. The toolkit provides utilities for assembling human-readable text into binary modules and disassembling binary files back into text. It features a text formatter for normalizing definitions into a canonical flat representation and supports the conversion of binaries into S-expression formats. T
The WebAssembly Binary Toolkit (WABT) provides CLI tools for inspecting, validating, transforming, and running WebAssembly modules, including an interpreter and disassembler, making it a fit for developers working with wasm modules, though it does not handle compiling high-level languages to wasm.
Your favorite Rust → Wasm workflow tool!
wasm-pack is a CLI tool that streamlines compiling Rust to WebAssembly and publishing to npm, fitting the search for WebAssembly toolkits but focused on the Rust-to-Wasm workflow rather than providing a runtime or broader language bindings.
The WASI SDK is a comprehensive compiler toolchain designed to transform C and C++ source code into portable, sandboxed binary modules. It provides the necessary utilities to target the WebAssembly System Interface, enabling native code to execute across diverse hardware and operating system environments through a standardized interface. The toolkit distinguishes itself by providing a complete, sysroot-isolated environment that ensures build consistency regardless of the host operating system. By bundling compilers, system headers, and libraries into unified, portable archives, it facilitates
webassembly/wasi-sdk provides a complete toolchain (LLVM/clang, wasi-libc, sysroot) for compiling C/C++ code to WebAssembly with full WASI support, making it a core SDK for WebAssembly development, though it focuses on compilation and lacks a built-in runtime or dedicated debugging tools.
This project is a Go WebAssembly frontend framework designed for building interactive web applications. It provides a toolkit for executing Go code directly in the browser to handle client-side logic and user interface development. The framework functions as a declarative UI library and a progressive web app toolset. It enables the creation of installable applications that can operate in standalone windows and maintain offline functionality. The system manages browser-side application development through a component-based view hierarchy and a declarative syntax for defining UI elements. It i
murlokswarm/app is a Go WebAssembly frontend framework that helps you build interactive web applications by compiling Go to WebAssembly and running it in the browser, making it a valid WebAssembly toolkit for developing client‑side modules, though it is focused on UI development and does not cover general runtime, debugging, or WASI features.
An experimental, minimal toolkit and runtime on top of node to produce and run WebAssembly modules.
This is an experimental minimal toolkit and runtime built on Node.js for producing and running WebAssembly modules, which fits the search for WebAssembly development tools, though it may lack advanced features like debugging or WASI support.
| Repository | Stars | Sprache | Lizenz | Letzter Push |
|---|---|---|---|---|
| wazero/wazero | 6.2K | Go | Apache-2.0 | |
| assemblyscript/assemblyscript | 17.9K | WebAssembly | Apache-2.0 | |
| extism/extism | 5.7K | Rust | BSD-3-Clause | |
| thedodd/trunk | 4.3K | Rust | Apache-2.0 | |
| ballercat/walt | 4.6K | JavaScript | MIT | |
| webassembly/binaryen | 8.4K | WebAssembly | apache-2.0 | |
| maxence-charriere/go-app | 8.9K | Go | MIT | |
| canadahonk/porffor | 4.7K | JavaScript | MIT | |
| emscripten-core/emscripten | 0 | — | — | — |
| konsoletyper/teavm | 3K | Java | apache-2.0 |