Big update!Announcing Socket for GitHub 1.0. Learn more
Socket
BlogLoveFAQ
Install
Log in

@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
20,415,587
decreased by-0.27%

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 19,613,725 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. It has 1 open source maintainer collaborating on the project.

Last updated on 02 Jul 2022
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