GithubHelp home page GithubHelp logo

silvanshade / awesome-wasm-tools Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vshymanskyy/awesome-wasm-tools

0.0 0.0 0.0 27 KB

๐Ÿ˜Ž A curated list of awesome, language-agnostic WebAssembly tools

awesome-wasm-tools's Introduction

Awesome WebAssembly Tools Awesome

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

Please read the contribution guidelines if you want to contribute.

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.

  • 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.

  • 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.

  • 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).

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

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.

Source-level debugging

Other

awesome-wasm-tools's People

Contributors

vshymanskyy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.