Big update!Introducing GitHub Bot Commands. Learn more
Socket
Log inBook a demo

@webassemblyjs/wasm-edit

Package Overview
Dependencies
8
Maintainers
1
Versions
78
Issues
File Explorer

Advanced tools

@webassemblyjs/wasm-edit

> Rewrite a WASM binary

    1.11.3latest

Version published
Maintainers
1
Weekly downloads
17,643,810
decreased by-20.43%

Weekly downloads

Readme

Source

@webassemblyjs/wasm-edit

Rewrite a WASM binary

Replace in-place an AST node in the binary.

Installation

yarn add @webassemblyjs/wasm-edit

Usage

Update:

import { edit } from "@webassemblyjs/wasm-edit"; const binary = [/*...*/]; const visitors = { ModuleImport({ node }) { node.module = "foo"; node.name = "bar"; } }; const newBinary = edit(binary, visitors);

Replace:

import { edit } from "@webassemblyjs/wasm-edit"; const binary = [/*...*/]; const visitors = { Instr(path) { const newNode = t.callInstruction(t.indexLiteral(0)); path.replaceWith(newNode); } }; const newBinary = edit(binary, visitors);

Remove:

import { edit } from "@webassemblyjs/wasm-edit"; const binary = [/*...*/]; const visitors = { ModuleExport({ node }) { path.remove() } }; const newBinary = edit(binary, visitors);

Insert:

import { add } from "@webassemblyjs/wasm-edit"; const binary = [/*...*/]; const newBinary = add(actualBinary, [ t.moduleImport("env", "mem", t.memory(t.limit(1))) ]);

Providing the AST

Providing an AST allows you to handle the decoding yourself, here is the API:

addWithAST(Program, ArrayBuffer, Array<Node>): ArrayBuffer; editWithAST(Program, ArrayBuffer, visitors): ArrayBuffer;

Note that the AST will be updated in-place.

FAQs

What is @webassemblyjs/wasm-edit?

> Rewrite a WASM binary

Is @webassemblyjs/wasm-edit popular?

The npm package @webassemblyjs/wasm-edit receives a total of 14,747,749 weekly downloads. As such, @webassemblyjs/wasm-edit popularity was classified as popular.

Is @webassemblyjs/wasm-edit well maintained?

We found that @webassemblyjs/wasm-edit demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.It has 1 open source maintainer collaborating on the project.

Last updated on 02 Jul 2022

Did you know?

Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install Socket
Socket

Product

Subscribe to our newsletter

Get open source security insights delivered straight into your inbox. Be the first to learn about new features and product updates.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc