30 open-source projects similar to assemblyscript/assemblyscript, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Assemblyscript alternative.
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
This project is a suite of basic command line utilities rewritten in Rust, providing a cross-platform implementation of POSIX shell utilities. It serves as a portable CLI toolset designed to run across different operating systems and architectures. The implementation includes a WebAssembly shell environment, which allows these essential command line tools to be executed directly within a web browser without requiring a local installation. The toolset covers a broad range of system capabilities, including filesystem operations, text processing and stream editing, and system administration too
Emscripten is a WebAssembly toolchain and compiler backend that transforms C and C++ source code into WebAssembly bytecode. It serves as a framework for porting native applications and libraries to web browsers and server runtimes by translating LLVM intermediate representation into optimized WebAssembly modules. The system specializes in porting native graphical standards, such as OpenGL and SDL2, by mapping native graphics API calls to browser-compatible WebGL commands. This allows complex visual applications and native desktop software to be deployed as portable web formats. The toolchain
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
This repository contains the design specifications for WebAssembly, serving as a technical standard for portable low-level code. It defines the binary format, instruction set, and execution semantics required to ensure consistent behavior across different hardware platforms. The project establishes the framework for a language compilation target, detailing the requirements for translating high-level programming languages into a low-level binary format. It includes a security model that defines operational rules and safety goals for executing untrusted binary code. The specifications cover th
TinyGo is a specialized compiler and development toolkit designed to bring the Go programming language to resource-constrained microcontrollers and WebAssembly environments. It provides a bare-metal runtime environment that enables high-level code execution without the need for a traditional operating system, utilizing an LLVM-based backend to generate efficient machine instructions. The project distinguishes itself through aggressive optimization techniques tailored for small hardware, including a static memory allocation strategy and whole-program dead code elimination that significantly re
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
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
Wasmer is a high-performance runtime engine designed to execute sandboxed WebAssembly modules across server-side, edge, and browser environments. It functions as a comprehensive platform for building, distributing, and running isolated applications, providing a secure and portable execution layer that maintains consistency across diverse hardware architectures and operating systems. The platform distinguishes itself through a robust toolchain that enables cross-language interoperability and the transformation of code into portable binary packages. It supports ahead-of-time binary generation t
GraalVM is a polyglot virtual machine and high-performance runtime designed to execute multiple programming languages within a single environment. It functions as a JVM language toolkit for building language implementations, a native image compiler for transforming bytecode into standalone binaries, and an execution environment for LLVM bitcode and WebAssembly modules. The project is distinguished by its polyglot interoperability framework, which allows different languages to share data and execution state with low overhead. It utilizes self-modifying abstract syntax trees to optimize languag
ffmpeg.wasm is a browser-based multimedia processing engine that brings the capabilities of the FFmpeg library directly to the client environment. By utilizing WebAssembly, it enables audio and video transcoding, format conversion, and stream recording to occur entirely within the browser without requiring server-side infrastructure. The library distinguishes itself by executing resource-intensive media tasks in background threads, ensuring that the main user interface remains responsive during complex operations. It manages data through an isolated, in-memory virtual file system, allowing fo
MicroPython is a lean implementation of Python 3 optimized to run on microcontrollers and other resource-constrained systems. It serves as a cross-platform embedded runtime and hardware abstraction layer, providing a firmware framework that maps high-level software commands to specific microcontroller registers across diverse processor architectures. The project functions as an embedded language interpreter that enables rapid prototyping on hardware through an interactive read-eval-print loop. It supports a wide range of target environments, including ARM, ESP32, STM32, RISC-V, and WebAssembl
RustPython is a Python 3 compatible interpreter implemented in Rust. It functions as a scripting engine that can be embedded directly into host applications, allowing for the execution of dynamic scripts and the customization of software behavior within a memory-safe environment. The project distinguishes itself through its ability to bridge Python and JavaScript runtimes, enabling data exchange and function invocation across language boundaries. It also provides a portable execution environment by compiling Python code into WebAssembly, which allows for the execution of logic directly within
esbuild is a high-performance JavaScript bundler and transpiler designed to transform modern web assets into production-ready code. Built with a focus on speed, it utilizes a concurrent execution model to perform parsing, linking, and code generation across multiple CPU cores. The engine handles a wide range of tasks, including TypeScript compilation, JSX transformation, and CSS bundling, while maintaining a consistent build process across diverse environments. What distinguishes the project is its architecture, which leverages memory-mapped file processing and a single-pass transformation st
Boa is a high-performance JavaScript engine and parser designed to execute JavaScript code and analyze source code structure. It functions as a runtime environment for executing scripts to automate tasks or process data, providing both a command-line JavaScript interpreter and a tool for converting source code into abstract syntax trees. The engine is capable of compiling to WebAssembly, allowing the runtime to be deployed and executed within web browser environments. It includes an interactive read-eval-print loop for real-time logic testing and snippet execution via a terminal. The system
Squoosh is a browser-based image optimizer that compresses and converts image files directly within the local environment. By performing all operations on the user device, it eliminates the need for server-side processing, ensuring that sensitive data remains private and reducing network latency. The tool utilizes a collection of high-performance image codecs compiled via WebAssembly to provide professional-grade file optimization and format conversion. To maintain interface responsiveness during resource-intensive tasks, the application offloads image manipulation to background threads and u
sqlite-vec is a C-based vector library and SQLite extension that adds virtual tables for storing and querying high-dimensional embeddings. It functions as a database plugin for performing nearest neighbor searches using distance metrics such as L2, cosine, and Hamming distance. The project provides a portable embedding store that supports deployment across Android, iOS, desktop environments, and web browsers via WebAssembly. It distinguishes itself by converting numerical arrays into compact binary formats and utilizing quantization to reduce the memory footprint and storage size of vector in
Sherpa-ONNX is an ONNX-based speech processing toolkit that provides a local speech recognition engine, an on-device voice synthesis tool, and a speaker identification framework. It is designed as a cross-platform speech API that enables speech-to-text, text-to-speech, and speaker verification tasks to be executed locally on a device without requiring network access. The project is distinguished by its ability to perform zero-shot voice cloning and speaker diarization on-device. It supports a wide range of hardware accelerations, including GPU and various NPU architectures, and provides a Web
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
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
This project is a high-performance compiler written in Rust that transpiles TypeScript and ECMAScript into compatible JavaScript code. It functions as a TypeScript transpiler, a JavaScript minifier, and a JavaScript bundler. The system distinguishes itself through a WebAssembly plugin host that allows the execution of custom transformation rules without modifying the core binary. It also provides specialized compilation for React source code to improve runtime performance and reduce execution overhead. The broader capability surface includes source-to-source compilation, type annotation stri
DEPRECATED in favor of ghc wasm backend, see https://www.tweag.io/blog/2022-11-22-wasm-backend-merged-in-ghc
JupyterLite is a WebAssembly-based interactive notebook environment that enables browser-based computing without a backend server. It provides a client-side data science sandbox where users can execute programming language kernels and run interactive notebooks entirely within the web browser. The project allows for the creation of tailored distributions by pre-installing specific language packages, bundling custom wheels, and applying environment configurations. It supports the generation of static sites that can be deployed to any standard HTTP host, including the ability to package the envi
Wasmtime is a WebAssembly runtime and sandboxed bytecode executor designed to run WebAssembly bytecode on a host system. It functions as an embeddable engine that integrates into applications through native APIs and language-specific bindings, as well as a standalone execution environment accessible via a command line interface. It is a WASI compatible runtime, implementing the WebAssembly System Interface to provide portable access to system resources. The engine utilizes a JIT compilation model to translate intermediate representation into optimized machine code for various CPU architecture
Linera is a multi-chain smart contract platform designed for horizontal scalability through a microchain-based distributed ledger. By partitioning state into independent, parallel chains that share a common validator set, the protocol enables high-performance execution of modular applications. The system utilizes a WebAssembly-based runtime to ensure secure, platform-independent execution of contract logic across the network. The platform distinguishes itself through an asynchronous messaging framework that coordinates state changes between chains by queuing messages for execution in subseque
This project provides a full Python interpreter compiled to WebAssembly, enabling the execution of Python code and scientific libraries directly within web browsers and server-side environments. By bridging the gap between language runtimes, it allows developers to run computational tasks, manage packages, and perform data analysis in client-side environments without requiring a backend server. The platform distinguishes itself through a comprehensive foreign function interface that enables bidirectional data exchange, object proxying, and function calling between Python and JavaScript. It in
Lunatic is a WebAssembly runtime and concurrent process manager that implements an Erlang-inspired model of lightweight concurrency and fault tolerance. It functions as a distributed actor system where isolated processes communicate via message passing across a network of linked nodes. The system utilizes a WebAssembly sandbox environment to isolate memory and restrict system call permissions for each individual process. This capability-based security model ensures that processes are sandboxed to safely execute untrusted code. The platform provides a fault-tolerant supervision tree for hiera