{"id":46074,"url":"https://github.com/vshymanskyy/awesome-wasm-tools","name":"awesome-wasm-tools","description":"😎 A curated list of awesome, language-agnostic WebAssembly tools","projects_count":64,"last_synced_at":"2026-09-30T21:00:20.844Z","repository":{"id":37750807,"uuid":"348690747","full_name":"vshymanskyy/awesome-wasm-tools","owner":"vshymanskyy","description":"😎 A curated list of awesome, language-agnostic WebAssembly tools","archived":false,"fork":false,"pushed_at":"2026-09-02T08:46:20.000Z","size":384,"stargazers_count":527,"open_issues_count":1,"forks_count":23,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-09-16T04:54:59.713Z","etag":null,"topics":["awesome","instruments","language-agnostic","tools","wasi","wasm","webassembly"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vshymanskyy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-17T11:52:05.000Z","updated_at":"2026-09-06T04:24:55.000Z","dependencies_parsed_at":"2022-07-18T01:16:55.637Z","dependency_job_id":null,"html_url":"https://github.com/vshymanskyy/awesome-wasm-tools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vshymanskyy/awesome-wasm-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vshymanskyy%2Fawesome-wasm-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vshymanskyy%2Fawesome-wasm-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vshymanskyy%2Fawesome-wasm-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vshymanskyy%2Fawesome-wasm-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vshymanskyy","download_url":"https://codeload.github.com/vshymanskyy/awesome-wasm-tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vshymanskyy%2Fawesome-wasm-tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":342085742,"owners_count":37887634,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-09-30T02:00:06.001Z","response_time":133,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-01-14T03:32:53.215Z","updated_at":"2026-09-30T21:00:20.846Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Other","Manipulating (optimization, transformation, instrumentation)","Dynamic analysis (tracing, profiling)","Source-level debugging","Tool development","Static analysis","Component Model and WIT","Inspecting","Editing","Application frameworks and deployment"],"sub_categories":[],"readme":"# Awesome WebAssembly Tools [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)\n\nA collection of useful, language-agnostic WebAssembly development tools.\n\n[\u003cimg height=\"100\" src=\"/images/code-explorer.png\"\u003e](https://raw.githubusercontent.com/vshymanskyy/awesome-wasm-tools/main/images/code-explorer.png)\n[\u003cimg height=\"100\" src=\"/images/wasm-opt-callgraph.svg\"\u003e](https://raw.githubusercontent.com/vshymanskyy/awesome-wasm-tools/main/images/wasm-opt-callgraph.svg)\n[\u003cimg height=\"100\" src=\"/images/wasm3-strace.png\"\u003e](https://raw.githubusercontent.com/vshymanskyy/awesome-wasm-tools/main/images/wasm3-strace.png)\n[\u003cimg height=\"100\" src=\"/images/chrome-dev-tools.png\"\u003e](https://raw.githubusercontent.com/vshymanskyy/awesome-wasm-tools/main/images/chrome-dev-tools.png)\n\n👉 Contributions are welcome! Please read the [contribution guidelines](CONTRIBUTING.md). 😎\n\n\n## Inspecting\n\n- **WebAssembly Code Explorer** | [online tool](https://wasdk.github.io/wasmcodeexplorer/)  \n  A simple binary explorer with neat binary code highlighting.\n\n- **Weave** | [online tool](https://evmar.github.io/weave)  \n  Another simple binary explorer.\n\n- **wasm-opt** | part of [`Binaryen`](https://github.com/WebAssembly/binaryen)  \n  - Color output of s-expression format:  \n    `wasm-opt --print test.wasm`\n  - Plot the callgraph using `Graphviz`:  \n    `wasm-opt --print-call-graph test.wasm | dot -Tpng -o callgraph.png`\n  - Dump DWARF debug info sections:  \n    `wasm-opt --dwarfdump test.wasm`\n  - Print function metrics:  \n    `wasm-opt --func-metrics test.wasm`\n\n- **wasm-decompile** | part of [`WABT`](https://github.com/WebAssembly/wabt), [article](https://v8.dev/blog/wasm-decompile)  \n  `wasm-decompile` decompiles a wasm binary into readable code. It generates output that tries to look like a \"very average programming language\" while still staying close to the wasm it represents.\n\n- **wasmdec** | [repo](https://github.com/wwwg/wasmdec), [online tool](https://wwwg.github.io/web-wasmdec/)  \n  Converts WebAssembly binaries to C. Similar to `wasm2c`.\n\n- **wasp** | [repo](https://github.com/WebAssembly/wasp)  \n  Generate callgraphs, CFG and DFG graphs for wasm functions.\n\n- **wasm-objdump** | part of [`WABT`](https://github.com/WebAssembly/wabt)  \n  Print low-level details about a `.wasm` binary and each of its sections.\n\n- **wasm-nm** | [repo](https://github.com/fitzgen/wasm-nm)  \n  List the imported, exported, and private function symbols defined within a `.wasm` binary.\n\n- **Modsurfer** | [home](https://www.dylibso.com/), [repo](https://github.com/dylibso/modsurfer)  \n  Diagnostics and auditing tool for searching, browsing, validating, and investigating WebAssembly modules and components.\n\n\n## Static analysis\n\n- **Twiggy** | [repo](https://github.com/rustwasm/twiggy)  \n  Code size profiler, analyzes a binary's call graph.\n\n- **Manticore** | [repo](https://github.com/trailofbits/manticore), [article](https://blog.trailofbits.com/2020/01/31/symbolically-executing-webassembly-in-manticore/)  \n  Symbolic execution of WebAssembly binaries.\n\n- **Owi** | [docs](https://ocamlpro.github.io/owi/), [repo](https://github.com/OCamlPro/owi)  \n  Framework for WebAssembly analysis and manipulation, with a focus on practical symbolic execution.\n  \n- **Octopus** | [repo](https://github.com/pventuzelo/octopus)  \n  Security analysis framework for WebAssembly modules and Smart Contracts.\n  \n- **Wassail** | [repo](https://github.com/acieroid/wassail)  \n  A toolkit to perform both lightweight and heavyweight static analysis of WebAssembly modules.\n\n- **wasm-opcodecnt** | part of [`WABT`](https://github.com/WebAssembly/wabt)  \n  Count wasm opcode usage statistics.\n\n\n## Manipulating (optimization, transformation, instrumentation)\n\n- **wasm-opt** | part of [`Binaryen`](https://github.com/WebAssembly/binaryen)  \n  - Transform binary for asynchronous execution (read more in [this article](https://kripken.github.io/blog/wasm/2019/07/16/asyncify.html)):  \n    `wasm-opt test.wasm --asyncify -O3 -o asyncified.wasm`\n  - Instrument binary for dynamic execution tracing:  \n    `wasm-opt test.wasm --instrument-memory --instrument-locals --log-execution -o instrumetred.wasm`\n\n- **wizer** | [repo](https://github.com/bytecodealliance/wizer)  \n  Don't wait for your Wasm module to initialize itself, pre-initialize it! Wizer instantiates your WebAssembly module, executes its initialization function, and then snapshots the initialized state out into a new WebAssembly module.\n\n- **wasm2c** | part of [`WABT`](https://github.com/WebAssembly/wabt/blob/main/wasm2c/README.md), \n[article 1](https://kripken.github.io/blog/wasm/2020/07/27/wasmboxc.html), \n[article 2](https://petersalomonsen.com/articles/wasm2c/wasm2c.html)  \n  Takes a WebAssembly module and produces an equivalent (and runnable) C source and header.\n  \n- **wasm-snip** | [repo](https://github.com/rustwasm/wasm-snip)  \n  Replaces a WebAssembly function's body with an `unreachable`.\n\n- **wasmonkey** | [repo](https://github.com/jedisct1/wasmonkey)  \n  Magically turns exported WASM functions into imported functions.\n\n- **wasm-meter** | [npm](https://www.npmjs.org/package/wasm-metering), [repo](https://github.com/ewasm/wasm-metering)  \n  Injects metering into webassembly binaries. This counts computation time for a given program in units of `gas` (and allows limiting it).\n\n- **CROW** | [repo](https://github.com/KTH/slumps/tree/master/crow)  \n  The Wasm superdiversifier. It takes C source code or LLVM bitcode as input and generates several functionally equivalent, but diverse Wasm binaries.  \n\n- **watr** | [repo](https://github.com/dy/watr), [npm](https://www.npmjs.com/package/watr), [demo](https://dy.github.io/watr/)  \n  Light and fast WAT compiler for compiling, parsing, printing, formatting, optimizing, and polyfilling WebAssembly text.\n\n\n## Component Model and WIT\n\n- **jco** | [docs](https://bytecodealliance.github.io/jco/), [repo](https://github.com/bytecodealliance/jco)  \n  JavaScript-native toolchain for working with WebAssembly Components, including transpiling components to ES modules and creating components from JavaScript.\n\n- **ComponentizeJS** | [repo](https://github.com/bytecodealliance/ComponentizeJS)  \n  Tool for turning JavaScript modules into WebAssembly components.\n\n- **wit-bindgen** | [repo](https://github.com/bytecodealliance/wit-bindgen)  \n  Guest language bindings generator for WIT and the WebAssembly Component Model.\n\n- **wac** | [repo](https://github.com/bytecodealliance/wac), [docs](https://component-model.bytecodealliance.org/composing-and-distributing/composing.html)  \n  WebAssembly Compositions tool for composing components together from the command line or from `.wac` composition files.\n\n- **cargo-component** | [repo](https://github.com/bytecodealliance/cargo-component), [crate](https://crates.io/crates/cargo-component)  \n  Cargo subcommand for building Rust WebAssembly components from WIT worlds.\n\n- **wkg, wasm-pkg-tools** | [repo](https://github.com/bytecodealliance/wasm-pkg-tools), [crate](https://crates.io/crates/wkg)  \n  Tools for fetching and publishing WebAssembly components and WIT packages to OCI or Warg registries.\n\n- **WASI-Virt** | [repo](https://github.com/bytecodealliance/WASI-Virt)  \n  Virtualization component generator for WASI Preview 2 APIs, useful for encapsulating or restricting component access to host capabilities.\n\n\n## Dynamic analysis (tracing, profiling)\n\n- **wasm3-strace** | [wapm](https://wapm.io/package/vshymanskyy/wasm3), [repo](https://github.com/wasm3/wasm3)  \n  Structured, seamless tracing of arbitrary WebAssembly/WASI execution.\n\n- **Wasabi** | [home](http://wasabi.software-lab.org/), [repo](https://github.com/danleh/wasabi)  \n  \"WebAssembly analysis using binary instrumentation\", a dynamic analysis framework.\n\n- **wasmsign2** | [repo](https://github.com/wasm-signatures/wasmsign2)  \n  A tool to add and verify digital signatures to/from WASM binaries.\n\n- **swam** | [repo](https://github.com/satabin/swam/)  \n  A WASM interpreter with advanced tracing capabilities.\n\n## Editing\n\n- **wasm-language-tools** | [home](https://wasm-language-tools.netlify.app/), [repo](https://github.com/g-plane/wasm-language-tools)  \n  Language server and formatter for WebAssembly Text Format, with completion, diagnostics, navigation, inlay hints, and call hierarchy.\n\n- **Hexana** | [docs](https://jetbrains.github.io/hexana/), [repo](https://github.com/JetBrains/hexana)  \n  WebAssembly and binary analysis toolkit for JetBrains IDEs and VS Code, including structured `.wasm` inspection, WAT and WIT support, and run/debug integrations.\n\n- **vscode-wit** | [repo](https://github.com/bytecodealliance/vscode-wit)  \n  Visual Studio Code extension for WIT, with syntax highlighting, validation, formatting, bindings generation, and component inspection.\n\n## Source-level debugging\n\n- **Chrome DevTools** | [article](https://developers.google.com/web/updates/2020/12/webassembly)\n\n- **LLDB** | [article](https://hacks.mozilla.org/2019/09/debugging-webassembly-outside-of-the-browser/)\n\n- **wasminspect** | [repo](https://github.com/kateinoigakukun/wasminspect)  \n  An interactive and self-contained debugger for WebAssembly/WASI.\n\n\n## Tool development\n\n- **Tool Conventions** | [docs](https://github.com/WebAssembly/tool-conventions)  \n  Documents describing conventions useful for coordinating interoperability between wasm-related tools.\n\n- **Binaryen** | [repo](https://github.com/WebAssembly/binaryen)  \n  WebAssembly compiler and toolchain infrastructure with tools for parsing, emitting, optimizing, interpreting, reducing, merging, and compiling WebAssembly.\n\n- **WABT** | [repo](https://github.com/WebAssembly/wabt)  \n  The WebAssembly Binary Toolkit, a suite of command-line tools for converting, inspecting, validating, and manipulating WebAssembly binaries and text.\n\n- **Javy** | [repo](https://github.com/bytecodealliance/javy)  \n  JavaScript-to-WebAssembly toolchain based on QuickJS, producing compact WASI modules.\n\n- **wasm2json, json2wasm** | [npm](https://www.npmjs.com/package/wasm-json-toolkit), [repo](https://github.com/ewasm/wasm-json-toolkit)  \n  A small toolkit for converting wasm binaries into json and back. Incredibly helpful for experimenting and creating your own transformations.\n\n- **walrus** | [repo](https://github.com/rustwasm/walrus)  \n  Rust library for performing WebAssembly transformations in a robust and ergonomic fashion.\n\n- **waffle** | [repo](https://github.com/bytecodealliance/waffle), [crate](https://crates.io/crates/waffle)  \n  Rust SSA IR framework for WebAssembly analysis and Wasm-to-Wasm transforms.\n\n- **wasp** | [repo](https://github.com/WebAssembly/wasp)  \n  C++ library designed to make it easy to work with WebAssembly modules.\n\n- **Binaryen.js** | [repo](https://github.com/AssemblyScript/binaryen.js)  \n  A port of Binaryen to the Web, allowing you to generate WebAssembly using JavaScript.\n\n- **wasm-tools** | [repo](https://github.com/bytecodealliance/wasm-tools)  \n  Rust tooling for low-level manipulation of WebAssembly modules.  \n    `wasm-smith` test case generator is of particular interest.  \n    `wasm-shrink` shrinks a Wasm file while preserving an interesting property (such as triggering a bug).\n\n- **wasm-debug** | [repo](https://github.com/wasmerio/wasm-debug), [crate](https://crates.io/crates/wasm-debug)  \n  A runtime-independent Rust library that provides functionality to read, transform, and write DWARF section.\n\n- **witx-codegen** | [repo](https://github.com/jedisct1/witx-codegen)  \n  A code generator to access WebAssembly standard APIs from different programming languages. Can also generate documentation.\n\n- **Articles**\n  - [Fuzzers \u0026 Reducers as Productivity Tools](https://kripken.github.io/blog/binaryen/2019/06/11/fuzz-reduce-productivity.html)\n\n\n## Application frameworks and deployment\n\n- **Extism** | [home](https://extism.org/), [repo](https://github.com/extism/extism)  \n  Cross-language framework for building WebAssembly-based plugin systems with host SDKs and guest PDKs.\n\n- **Spin** | [home](https://spinframework.dev/), [repo](https://github.com/spinframework/spin)  \n  Framework and CLI for building, running, and distributing serverless WebAssembly applications.\n\n- **wasmCloud, wash** | [docs](https://wasmcloud.com/docs/wash/), [repo](https://github.com/wasmCloud/wasmCloud)  \n  Cloud-native platform and CLI for developing, building, publishing, and running WebAssembly components.\n\n- **SpinKube** | [home](https://www.spinkube.dev/), [repos](https://github.com/spinframework)  \n  Kubernetes-native stack for deploying and operating Spin-based WebAssembly workloads.\n\n- **runwasi** | [docs](https://runwasi.dev/), [repo](https://github.com/containerd/runwasi)  \n  Containerd shim infrastructure for running WebAssembly workloads through containerd and Kubernetes.\n\n\n## Other\n\n- **WebAssembly Opcode Table** | [docs](https://wasm-chart.pengowray.com/)\n\n- **WebAssembly Feature Status** | [docs](https://webassembly.org/features/)  \n  Matrix tracking WebAssembly feature support across popular browsers, standalone runtimes, and tools.\n\n---\n[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine)\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/vshymanskyy%2Fawesome-wasm-tools/projects"}