A fast and universal WebAssembly interpreter designed for portability, minimal footprint, and broad platform support.
Wasm3 is a fast, standards-compliant WebAssembly interpreter and runtime designed for portability and minimal resource usage. It solves the problem of running WebAssembly code in environments where Just-In-Time (JIT) compilation is impractical or impossible, such as embedded systems, iOS, and browsers. The project prioritizes ease of integration, security through sandboxed execution, and broad compatibility across diverse hardware and software platforms.
Developers and engineers working on embedded systems, IoT devices, mobile applications (especially iOS), and edge computing platforms that require a lightweight, secure WebAssembly runtime. It also targets those needing to integrate WebAssembly into existing projects via extensive language bindings, including Python, Rust, C/C++, Go, Swift, and .NET.
Developers choose Wasm3 over alternatives for its exceptional portability across a wide range of architectures and operating systems, its minimal footprint (requiring only about 64KB of code space and 10KB of RAM), and its focus on security and ease of integration. Unlike JIT-based runtimes, it provides predictable performance and is usable on platforms that restrict dynamic code generation.
🚀 A fast WebAssembly interpreter and the most universal WASM runtime
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Runs on a wide range of architectures including x86, ARM, RISC-V, and platforms from Linux and Windows to microcontrollers and routers, as detailed in the README's supported platforms list.
Requires only about 64KB of code space and 10KB of RAM, making it ideal for embedded systems and resource-constrained devices, a key feature highlighted in the README.
Available as libraries for Python, Rust, C/C++, Go, Swift, .NET, and more, facilitating easy integration into diverse projects without heavy dependencies.
Passes the WebAssembly spec test suite and provides sandboxed execution for secure, predictable running of untrusted code, useful for scripting and plugins.
Missing key WebAssembly proposals like tail call optimization, SIMD, and exception handling, as shown in the features table, which may hinder adoption for advanced use cases.
The project is in minimal maintenance due to the maintainer's personal circumstances, meaning fewer updates and slower feature development, though Pull Requests are still accepted.
As an interpreter, it is inherently slower than JIT-based runtimes like Wasmer or V8, which could be a drawback for performance-sensitive applications despite its speed claims.