https://github.com/wasm3/wasm3 Skip to content Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} wasm3 / wasm3 Public * Notifications * Fork 420 * Star 6.6k A fast WebAssembly interpreter and the most universal WASM runtime twitter.com/wasm3_engine License MIT license 6.6k stars 420 forks Activity Star Notifications * Code * Issues 56 * Pull requests 10 * Actions * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Security * Insights wasm3/wasm3 This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 3 branches 7 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/w] Use Git or checkout with SVN using the web URL. [gh repo clone wasm3/] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @vshymanskyy vshymanskyy Update README.md ... d28e14f Dec 18, 2023 Update README.md d28e14f Git stats * 1,682 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github/workflows Cleanup December 18, 2023 02:57 docs Fix: typos (#397) November 12, 2022 10:00 extra Update logos August 30, 2022 12:57 platforms Update cpp example December 18, 2023 11:29 source Fix build December 18, 2023 11:39 test Faster tests August 30, 2022 10:43 .codespellrc Separate action for spellcheck March 18, 2021 23:10 .gitignore Add cross-arch build script December 22, 2021 16:28 CMakeLists.txt Update uvwasi December 18, 2023 03:11 LICENSE Update LICENSE November 9, 2019 18:40 README.md Update README.md December 18, 2023 13:00 build-cross.py Fix build August 31, 2022 21:54 build.zig Fix build.zig file for Zig 0.10 (#410) November 24, 2022 22:57 View code [ ] Wasm3 Getting Started Installation Status Features Motivation Used by Further Resources License README.md Note I regret to inform the community that since my house was destroyed by russians who invaded my country, Wasm3 will enter a minimal maintenance phase. At this time, I am unable to continue the development of new features. However, I am committed to keeping the project alive and will actively review and merge incoming Pull Requests. I deeply appreciate your understanding and support during this difficult period. Your contributions to Wasm3 are now more valuable than ever. [screenshot-ios] [was] Wasm3 StandWithUkraine WAPM GitHub issues Tests status Fuzzing Status GitHub license A fast WebAssembly interpreter and the most universal WASM runtime. [Based on CoreMark 1.0 and independent benchmarks. Your mileage may vary.] Twitter Discord Getting Started Here's a small getting started guide. Click here to start: LIVE DEMO Installation Please follow the installation instructions. Wasm3 can also be used as a library for: # Python3 | # Rust | # C/C++ | # GoLang | # Zig | # Perl # Swift | # .Net | # Nim | # Arduino, PlatformIO, Particle | QuickJS Status wasm3 passes the WebAssembly spec testsuite and is able to run many WASI apps. Minimum useful system requirements: ~64Kb for code and ~10Kb RAM wasm3 runs on a wide range of architectures (x86, x86_64, ARM, RISC-V, PowerPC, MIPS, Xtensa, ARC32, ...) and platforms: * # Linux, # Windows, # OS X, # FreeBSD, # Android, # iOS * # OpenWrt, Yocto, Buildroot (routers, modems, etc.) * # Raspberry Pi, Orange Pi and other SBCs * # MCUs: Arduino, ESP8266, ESP32, Particle, ... see full list * # Browsers. Yes, using WebAssembly itself! * # wasm3 can execute wasm3 (self-hosting) Features Webassembly Core Proposals Extra Import/Export of Mutable Globals Structured execution tracing Non-trapping float-to-int conversions Big-Endian systems support Sign-extension operators Wasm and WASI self-hosting Multi-value Gas metering Bulk memory operations (partial Linear memory limit (< support) 64KiB) Multiple memories Reference types Tail call optimization Fixed-width SIMD Exception handling Motivation Why use a "slow interpreter" versus a "fast JIT"? In many situations, speed is not the main concern. Runtime executable size, memory usage, startup latency can be improved with the interpreter approach. Portability and security are much easier to achieve and maintain. Additionally, development impedance is much lower. A simple library like Wasm3 is easy to compile and integrate into an existing project. (Wasm3 builds in a just few seconds). Finally, on some platforms (i.e. iOS and WebAssembly itself) you can't generate executable code pages in runtime, so JIT is unavailable. Why would you want to run WASM on embedded devices? Wasm3 started as a research project and remains so by any means. Evaluating the engine in different environments is part of the research. Given that we have Lua, JS, Python, Lisp, ... running on MCUs, WebAssembly is a promising alternative. It provides toolchain decoupling as well as a completely sandboxed, well-defined, predictable environment. Among practical use cases we can list edge computing, scripting, plugin systems, running IoT rules, smart contracts, etc. Used by [wasmcloud] [wowcube] [6874747073] [scailable] [blynk] [iden3] [6874747073] [losant] [114701856-] [6874747073] [6874747073] [shareup_ap] [6874747073] Further Resources Demos Installation instructions Cookbook Troubleshooting Build and Development instructions Supported Hardware Testing & Fuzzing Performance Interpreter Architecture Logging Awesome WebAssembly Tools License This project is released under The MIT License (MIT) About A fast WebAssembly interpreter and the most universal WASM runtime twitter.com/wasm3_engine Topics iot devops embedded serverless containers virtual-machine sandbox scripting smart-contracts webassembly wasm edge-computing cosmopolitan Resources Readme License MIT license Activity Stars 6.6k stars Watchers 125 watching Forks 420 forks Report repository Releases 7 v0.5.0 Latest Jun 2, 2021 + 6 releases Packages 0 No packages published Contributors 61 * @vshymanskyy * @soundandform * @MaxGraey * @igrr * @cjihrig * @abalkin * @axic * @syrusakbary * @atdrendel * @cclauss * @sinkingsugar * @skrphv * @coderzh * @mithro + 47 contributors Languages * C 90.5% * C++ 3.7% * Python 2.8% * CMake 1.0% * Makefile 0.7% * Shell 0.4% * Other 0.9% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * You can't perform that action at this time.