All Projects β†’ vshymanskyy β†’ Awesome Wasm Tools

vshymanskyy / Awesome Wasm Tools

😎 A curated list of awesome, language-agnostic WebAssembly tools

Projects that are alternatives of or similar to Awesome Wasm Tools

Wasmex
Execute WebAssembly / WASM from Elixir
Stars: ✭ 136 (-2.16%)
Mutual labels:  webassembly, wasm
As Wasi
An AssemblyScript API layer for WASI system calls.
Stars: ✭ 135 (-2.88%)
Mutual labels:  webassembly, wasm
Wasmplay
WASM Web "Framework" Playground
Stars: ✭ 105 (-24.46%)
Mutual labels:  webassembly, wasm
D3 Wasm Force
A re-implementation of d3-force with WebAssembly.
Stars: ✭ 93 (-33.09%)
Mutual labels:  webassembly, wasm
Percy
Build frontend browser apps with Rust + WebAssembly. Supports server side rendering.
Stars: ✭ 1,856 (+1235.25%)
Mutual labels:  webassembly, wasm
Telegram React
Experimental Telegram web client with tdlib, webassembly and react js under the hood
Stars: ✭ 1,332 (+858.27%)
Mutual labels:  webassembly, wasm
Gbemu
WebAssembly based Gameboy Emulator
Stars: ✭ 120 (-13.67%)
Mutual labels:  webassembly, wasm
Wasm Forth
A Forth implementation compiling to WebAssembly.
Stars: ✭ 92 (-33.81%)
Mutual labels:  webassembly, wasm
Grain
The Grain compiler toolchain and CLI. Home of the modern web staple. 🌾
Stars: ✭ 2,199 (+1482.01%)
Mutual labels:  webassembly, wasm
Stork
πŸ”Ž Impossibly fast web search, made for static sites.
Stars: ✭ 1,983 (+1326.62%)
Mutual labels:  wasm, webassembly
Dcmjs
dcmjs is a javascript cross-compile of dcmtk (dcmtk.org).
Stars: ✭ 92 (-33.81%)
Mutual labels:  webassembly, wasm
Opencombine
Open source implementation of Apple's Combine framework for processing values over time.
Stars: ✭ 2,040 (+1367.63%)
Mutual labels:  webassembly, wasm
Assortedwidgets
OpenGL GUI library
Stars: ✭ 92 (-33.81%)
Mutual labels:  webassembly, wasm
Wasmer Go
πŸΉπŸ•ΈοΈ WebAssembly runtime for Go
Stars: ✭ 1,365 (+882.01%)
Mutual labels:  webassembly, wasm
Emscripten Docker
Docker image with Emscripten to compile ASM.js and WebAssembly
Stars: ✭ 92 (-33.81%)
Mutual labels:  webassembly, wasm
Lunatic
Lunatic is an Erlang-inspired runtime for WebAssembly
Stars: ✭ 2,074 (+1392.09%)
Mutual labels:  webassembly, wasm
Web Dsp
A client-side signal processing library utilizing the power of WebAssembly (.wasm)
Stars: ✭ 1,278 (+819.42%)
Mutual labels:  webassembly, wasm
Wasmer
πŸš€ The leading WebAssembly Runtime supporting WASI and Emscripten
Stars: ✭ 11,047 (+7847.48%)
Mutual labels:  webassembly, wasm
Jsnet
Javascript/WebAssembly deep learning library for MLPs and convolutional neural networks
Stars: ✭ 126 (-9.35%)
Mutual labels:  webassembly, wasm
Made With Webassembly
A showcase of awesome production applications, side projects, and use cases made with WebAssembly (Wasm). πŸ‘·
Stars: ✭ 132 (-5.04%)
Mutual labels:  webassembly, wasm

Awesome WebAssembly Tools Awesome

A collection of useful, language-agnostic WebAssembly development tools.

πŸ‘‰ Contributions are welcome! Please read the contribution guidelines. 😎

Inspecting

  • WebAssembly Code Explorer | online tool
    A simple binary explorer with neat binary code highlighting.

  • wasm-opt | part of Binaryen

    • Color output of s-expression format:
      wasm-opt --print test.wasm
    • Plot the callgraph using Graphviz:
      wasm-opt --print-call-graph test.wasm | dot -Tpng -o callgraph.png
    • Dump DWARF debug info sections:
      wasm-opt --dwarfdump test.wasm
    • Print function metrics:
      wasm-opt --func-metrics test.wasm
  • wasm-decompile | part of WABT, article
    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.

  • wasmdec | repo, online tool
    Converts WebAssembly binaries to C. Similar to wasm2c.

  • wasp | repo
    Generate callgraphs, CFG and DFG graphs for wasm functions.

  • wasm-objdump | part of WABT
    Print low-level details about a .wasm binary and each of its sections.

  • wasm-nm | repo
    List the imported, exported, and private function symbols defined within a .wasm binary.

Static analysis

  • Twiggy | repo
    Code size profiler, analyzes a binary's call graph.

  • Manticore | repo, article
    Symbolic execution of WebAssembly binaries.

  • Octopus | repo
    Security analysis framework for WebAssembly modules and Smart Contracts.

  • Wassail | repo
    A toolkit to perform both lightweight and heavyweight static analysis of WebAssembly modules.

  • wasm-opcodecnt | part of WABT
    Count wasm opcode usage statistics.

Manipulating (optimization, transformation, instrumentation)

  • wasm-opt | part of Binaryen

    • Transform binary for asynchronous execution (read more in this article):
      wasm-opt test.wasm --asyncify -O3 -o asyncified.wasm
    • Instrument binary for dynamic execution tracing:
      wasm-opt test.wasm --instrument-memory --instrument-locals --log-execution -o instrumetred.wasm
  • wizer | repo
    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.

  • wasm-snip | repo
    Replaces a WebAssembly function's body with an unreachable.

  • wasmonkey | repo
    Magically turns exported WASM functions into imported functions.

  • wasm-meter | npm, repo
    Injects metering into webassembly binaries. This counts computation time for a given program in units of gas (and allows limiting it).

  • CROW | repo
    The Wasm superdiversifier. It takes C source code or LLVM bitcode as input and generates several functionally equivalent, but diverse Wasm binaries.

Dynamic analysis (tracing, profiling)

  • wasm3-strace | wapm, repo
    Structured, seamless tracing of arbitrary WebAssembly/WASI execution.

  • Wasabi | home, repo
    "WebAssembly analysis using binary instrumentation", a dynamic analysis framework.

  • wasmsign | repo
    A tool to add and verify digital signatures to/from WASM binaries.

Source-level debugging

  • Chrome DevTools | article

  • LLDB | article

  • wasminspect | repo
    An interactive and self-contained debugger for WebAssembly/WASI.

Tool development

  • Tool Conventions | docs
    Documents describing conventions useful for coordinating interoperability between wasm-related tools.

  • wasm2json, json2wasm | npm, repo
    A small toolkit for converting wasm binaries into json and back. Incredibly helpful for experimenting and creating your own transformations.

  • walrus | repo
    Rust library for performing WebAssembly transformations in a robust and ergonomic fashion.

  • wasp | repo
    C++ library designed to make it easy to work with WebAssembly modules.

  • Binaryen.js | repo
    A port of Binaryen to the Web, allowing you to generate WebAssembly using JavaScript.

  • wasm-tools | repo
    Rust tooling for low-level manipulation of WebAssembly modules. wasm-smith test case generator is of particular interest.

  • wasm-debug | repo, crate
    A runtime-independent Rust library that provides functionality to read, transform, and write DWARF section.

Other

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].