Skip to content
/ wasm Public

WebAssembly Binary Format (.wasm) decoder-modifier-encoder for TypeScript

License

Notifications You must be signed in to change notification settings

hazae41/wasm

Repository files navigation

WASM

WebAssembly Binary Format (.wasm) decoder-modifier-encoder for TypeScript

npm install @hazae41/wasm
deno install jsr:@hazae41/wasm

📦 NPM📦 JSR

Features

Current features

  • 100% TypeScript and ESM
  • No external dependencies
  • Rust-like patterns
  • No validation done
  • Easily edit .wasm
  • Latest specification

Usage

import * as Wasm from "@hazae41/wasm"
import { Readable, Writable } from "@hazae41/binary"
import { readFileSync, writeFileSync } from "node:fs"

const module = Readable.readFromBytesOrThrow(Wasm.Module, readFileSync("./mod.wasm"))

const imports = module.body.sections.find(section => section.kind === Wasm.ImportSection.kind)! as Wasm.ImportSection

console.log(imports) // Show all imports

const start = module.body.sections.find(section => section.kind === Wasm.StartSection.kind)! as Wasm.StartSection

start.funcidx = 3 // Change start function

writeFileSync("./mod.wasm", Writable.writeToBytesOrThrow(module))

About

WebAssembly Binary Format (.wasm) decoder-modifier-encoder for TypeScript

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published