Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (wabt) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
wabt.js
wabt.js is a port of WABT to the Web, allowing you to manipulate WebAssembly modules using a JavaScript API.
Usage
$> npm install wabt
require("wabt")().then(wabt => {
var wasm = ...; // a buffer holding the contents of a wasm file
var myModule = wabt.readWasm(wasm, { readDebugNames: true });
myModule.applyNames();
var wast = myModule.toText({ foldExprs: false, inlineExport: false });
console.log(wast);
});
The buildbot also publishes nightly versions once a day if there have been changes. The latest nightly can be installed through
$> npm install --save-exact wabt@nightly
or you can use one of the previous versions instead if necessary. Note the --save-exact
when using a nightly.
Usage with a CDN
- From GitHub via jsDelivr:
https://cdn.jsdelivr.net/gh/AssemblyScript/wabt.js@VERSION/index.js
- From npm via jsDelivr:
https://cdn.jsdelivr.net/npm/wabt@VERSION/index.js
- From npm via UNPKG:
https://unpkg.com/wabt@VERSION/index.js
Replace VERSION
with a specific version or omit it (not recommended in production) to use main/latest.
API
parseWat(filename:
string
, buffer:string | Uint8Array
, options?:WasmFeatures
):WasmModule
Parses a WebAssembly text format source to a module.readWasm(buffer:
Uint8Array
, options:ReadWasmOptions & WasmFeatures
):WasmModule
Reads a WebAssembly binary to a module.WasmModule
A class representing a WebAssembly module.- validate():
void
Validates the module. Throws if not valid. - resolveNames():
void
Resolves names to indexes. - generateNames():
void
Generates textual names for function types, globals, labels etc. - applyNames():
void
Applies textual names. Throws on error. - toText(options:
ToTextOptions
):string
Converts the module to wat text format. - toBinary(options:
ToBinaryOptions
):ToBinaryResult
Converts the module to a wasm binary. - destroy():
void
Disposes the module and frees its resources.
- validate():
ReadWasmOptions
Options modifying the behavior ofreadWasm
.- readDebugNames:
boolean
Reads textual names from the name section.
- readDebugNames:
ToTextOptions
Options modifying the behavior ofWasmModule#toText
.- foldExprs:
boolean
- inlineExport:
boolean
- foldExprs:
ToBinaryOptions
Options modifying the behavior ofWasmModule#toBinary
.- log:
boolean
- canonicalize_lebs:
boolean
- relocatable:
boolean
- write_debug_names:
boolean
- log:
ToBinaryResult
Result object ofWasmModule#toBinary
.- buffer:
Uint8Array
The wasm binary buffer. - log:
string
Generated log output.
- buffer:
WasmFeatures
WebAssembly features to legalize. Finished features are enabled by default.- exceptions:
boolean
Exception handling (proposal). - mutable_globals:
boolean
Import/Export mutable globals (proposal). - sat_float_to_int:
boolean
Non-trapping Float-to-int Conversions (proposal). - sign_extension:
boolean
Sign-extension operators (proposal). - simd:
boolean
128-bit packed SIMD (proposal). - threads:
boolean
Threading (proposal). - function_references:
boolean
Typed function references (proposal). - multi_value:
boolean
Multi-value (proposal). - tail_call:
boolean
Tail Call (proposal). - bulk_memory:
boolean
Bulk Memory Operations and Conditional Segment Initialization (proposal). - reference_types:
boolean
Reference Types (proposal). - annotations:
boolean
Custom Annotation Syntax for the Wasm Text Format (proposal). - code_metadata:
boolean
Code metadata (convention). - gc:
boolean
Garbage collection (proposal). - memory64:
boolean
64-bit memory (proposal). - extended_const:
boolean
Extended constant expressions (proposal). - relaxed_simd:
boolean
Relaxed SIMD (proposal).
- exceptions:
CLI
Node.js ports of the following command line tools are included in the package as well:
- wasm2c converts a WebAssembly binary file to a C source and header.
- wasm2wat translates from WebAssembly binary format to text format.
- wat2wasm translates from WebAssembly text format to binary format.
- wasm-decompile decompiles a wasm binary into readable C-like syntax.
- wasm-interp decodes and runs a WebAssembly binary file using a stack-based interpreter.
- wasm-objdump prints information about a wasm binary. Similiar to objdump.
- wasm-stats shows stats for a WebAssembly module.
- wasm-strip removes sections of a WebAssembly binary file.
- wasm-validate validates a file in WebAssembly binary format.
The tools can also be run ad hoc (without explicitly installing the package), for example with:
$> npx -p wabt wasm2wat myModule.wasm -o myModule.wat