wabt
TypeScript icon, indicating that this package has built-in type declarations

1.0.37 • Public • Published

wabt.js

wabt.js is a port of WABT to the Web, allowing you to manipulate WebAssembly modules using a JavaScript API.

Build status npm version npm nightly version

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.
  • ReadWasmOptions
    Options modifying the behavior of readWasm.

    • readDebugNames: boolean
      Reads textual names from the name section.
  • ToTextOptions
    Options modifying the behavior of WasmModule#toText.

    • foldExprs: boolean
    • inlineExport: boolean
  • ToBinaryOptions
    Options modifying the behavior of WasmModule#toBinary.

    • log: boolean
    • canonicalize_lebs: boolean
    • relocatable: boolean
    • write_debug_names: boolean
  • ToBinaryResult
    Result object of WasmModule#toBinary.

    • buffer: Uint8Array
      The wasm binary buffer.
    • log: string
      Generated log output.
  • 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).

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

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
1.0.371,507latest
1.0.37-nightly.202504150nightly

Version History

VersionDownloads (Last 7 Days)Published
1.0.37-nightly.202504150
1.0.37-nightly.2025041046
1.0.37-nightly.202504042
1.0.37-nightly.202504032
1.0.37-nightly.202504024
1.0.37-nightly.202503282
1.0.37-nightly.202503272
1.0.37-nightly.202503261
1.0.37-nightly.202503252
1.0.37-nightly.202503202
1.0.37-nightly.202503141
1.0.37-nightly.202503131
1.0.37-nightly.202503111
1.0.37-nightly.202503050
1.0.371,507
1.0.36-nightly.202503020
1.0.36-nightly.202502261
1.0.36-nightly.202502190
1.0.36-nightly.202502141
1.0.36-nightly.202502081
1.0.36-nightly.202501300
1.0.36-nightly.202501191
1.0.36-nightly.202501171
1.0.36-nightly.202501151
1.0.36-nightly.202501110
1.0.36-nightly.202412190
1.0.36-nightly.202412150
1.0.36-nightly.202412060
1.0.36-nightly.202411290
1.0.36-nightly.202411260
1.0.36-nightly.202411211
1.0.36-nightly.202411190
1.0.36-nightly.202411130
1.0.36-nightly.202411120
1.0.36-nightly.202411090
1.0.36-nightly.202411080
1.0.36-nightly.202411051
1.0.36-nightly.202411010
1.0.36-nightly.202410310
1.0.36-nightly.202410301
1.0.36-nightly.202410291
1.0.36-nightly.202410250
1.0.36-nightly.202410220
1.0.36-nightly.202410190
1.0.36-nightly.202410180
1.0.36-nightly.202410160
1.0.36-nightly.202410130
1.0.36-nightly.202410090
1.0.36-nightly.202410081
1.0.36-nightly.202410020
1.0.36-nightly.202410010
1.0.36-nightly.202409251
1.0.36-nightly.202409240
1.0.36-nightly.202409211
1.0.36-nightly.202409200
1.0.36-nightly.202409190
1.0.36-nightly.202409180
1.0.36-nightly.202409100
1.0.36-nightly.202409072
1.0.36-nightly.202408302
1.0.36-nightly.202408230
1.0.36-nightly.202408120
1.0.36-nightly.202408100
1.0.361,028
1.0.35-nightly.202407230
1.0.35-nightly.202407170
1.0.35-nightly.202407131
1.0.35-nightly.202407100
1.0.35-nightly.202407030
1.0.35-nightly.202406271
1.0.35-nightly.202406250
1.0.35-nightly.202406231
1.0.35-nightly.202406221
1.0.35-nightly.202406040
1.0.35-nightly.202406021
1.0.35-nightly.202405231
1.0.35-nightly.202405210
1.0.35-nightly.202405160
1.0.3525
1.0.34-nightly.202405140
1.0.34-nightly.202405090
1.0.34-nightly.202405071
1.0.32-nightly.202303060
1.0.32-nightly.202303030
1.0.32-nightly.202303011
1.0.32-nightly.202302280
1.0.32-nightly.202302260
1.0.32-nightly.202302240
1.0.32-nightly.202302190
1.0.32-nightly.202302140
1.0.32-nightly.202302101
1.0.32-nightly.202302080
1.0.32-nightly.202301301
1.0.32-nightly.202301291
1.0.32-nightly.202301280
1.0.32-nightly.202301270
1.0.32-nightly.202301261
1.0.32-nightly.202301230
1.0.32-nightly.202301190
1.0.32-nightly.202301180
1.0.32-nightly.202301152
1.0.32-nightly.202301141
1.0.32-nightly.202301130
1.0.32-nightly.202301121
1.0.32-nightly.202301090
1.0.32-nightly.202301040
1.0.32-nightly.202301020
1.0.32-nightly.202212301
1.0.321,252
1.0.30-nightly.202211090
1.0.30-nightly.202211080
1.0.30-nightly.202211060
1.0.30-nightly.202211051
1.0.30-nightly.202211031
1.0.30-nightly.202211021
1.0.30-nightly.202211010
1.0.30-nightly.202210251
1.0.30-nightly.202210120
1.0.30-nightly.202210070
1.0.30-nightly.202210050
1.0.301
1.0.29-nightly.202210031
1.0.29-nightly.202210010
1.0.29-nightly.202209290
1.0.29-nightly.202209240
1.0.29-nightly.202209230
1.0.29-nightly.202209220
1.0.29-nightly.202209190
1.0.29-nightly.202209180
1.0.29-nightly.202209170
1.0.29-nightly.202209100
1.0.29-nightly.202208240
1.0.29-nightly.202208180
1.0.29-nightly.202208170
1.0.29-nightly.202208160
1.0.29-nightly.202208020
1.0.29-nightly.202207231
1.0.29-nightly.202207151
1.0.29-nightly.202207140
1.0.29-nightly.202207120
1.0.29-nightly.202207090
1.0.29-nightly.202207021
1.0.29-nightly.202206210
1.0.29-nightly.202206040
1.0.29-nightly.202205280
1.0.29-nightly.202205230
1.0.29-nightly.202205120
1.0.29-nightly.202205110
1.0.2913
1.0.28-nightly.202205030
1.0.28-nightly.202204300
1.0.28-nightly.202204290
1.0.28-nightly.202204270
1.0.28-nightly.202204220
1.0.28-nightly.202204210
1.0.28-nightly.202204151
1.0.28-nightly.202204141
1.0.28-nightly.202204061
1.0.28-nightly.202204050
1.0.28-nightly.202203311
1.0.28-nightly.202203260
1.0.28-nightly.202203240
1.0.28-nightly.202203201
1.0.281
1.0.27-nightly.202203180
1.0.27-nightly.202203120
1.0.27-nightly.202203111
1.0.27-nightly.202203100
1.0.27-nightly.202203091
1.0.27-nightly.202203080
1.0.27-nightly.202203071
1.0.27-nightly.202203060
1.0.27-nightly.202203051
1.0.27-nightly.202203040
1.0.27-nightly.202202261
1.0.27-nightly.202202250
1.0.27-nightly.202202240
1.0.27-nightly.202202230
1.0.27-nightly.202202190
1.0.27-nightly.202202180
1.0.275
1.0.26-nightly.202202160
1.0.26-nightly.202202150
1.0.26-nightly.202202130
1.0.26-nightly.202202120
1.0.26-nightly.202202110
1.0.26-nightly.202202050
1.0.26-nightly.202202031
1.0.26-nightly.202202021
1.0.26-nightly.202202010
1.0.26-nightly.202201220
1.0.26-nightly.202201150
1.0.260
1.0.25-nightly.202201111
1.0.25-nightly.202201090
1.0.25-nightly.202201080
1.0.25-nightly.202112241
1.0.25-nightly.202112231
1.0.25-nightly.202112221
1.0.25-nightly.202112210
1.0.25-nightly.202112180
1.0.25-nightly.202112160
1.0.250
1.0.24-nightly.202112140
1.0.24-nightly.202112110
1.0.24-nightly.202112100
1.0.24-nightly.202112090
1.0.24-nightly.202112080
1.0.24-nightly.202112070
1.0.24-nightly.202112050
1.0.24-nightly.202112040
1.0.24-nightly.202112031
1.0.24-nightly.202112010
1.0.24-nightly.202111231
1.0.24-nightly.202111201
1.0.24-nightly.202111180
1.0.24-nightly.202111170
1.0.24-nightly.202111090
1.0.24-nightly.202111071
1.0.24-nightly.202111051
1.0.24-nightly.202111020
1.0.24-nightly.202110301
1.0.24-nightly.202110270
1.0.24-nightly.202110211
1.0.24-nightly.202110201
1.0.24-nightly.202110190
1.0.24-nightly.202110170
1.0.24-nightly.202110150
1.0.24-nightly.202110140
1.0.24-nightly.202110131
1.0.24-nightly.202110121
1.0.24-nightly.202110020
1.0.24-nightly.202109280
1.0.24-nightly.202109211
1.0.24-nightly.202109160
1.0.24-nightly.202109110
1.0.24-nightly.202109100
1.0.24-nightly.202108301
1.0.24-nightly.202108290
1.0.24-nightly.202108240
1.0.24-nightly.202108141
1.0.246,347
1.0.23-nightly.202108070
1.0.23-nightly.202108060
1.0.23-nightly.202107271
1.0.23-nightly.202107260
1.0.23-nightly.202107150
1.0.23-nightly.202107010
1.0.23-nightly.202106301
1.0.23-nightly.202106260
1.0.23-nightly.202106230
1.0.23-nightly.202106180
1.0.23-nightly.202106110
1.0.23-nightly.202105290
1.0.23-nightly.202105280
1.0.23-nightly.202105260
1.0.23-nightly.202105190
1.0.23-nightly.202105140
1.0.23-nightly.202105070
1.0.23-nightly.202105050
1.0.23-nightly.202104270
1.0.23-nightly.202104251
1.0.23-nightly.202104230
1.0.23-nightly.202104120
1.0.23-nightly.202104090
1.0.23-nightly.202104080
1.0.23-nightly.202104060
1.0.23-nightly.202103270
1.0.238
1.0.21-nightly.202103061
1.0.210
1.0.20-nightly.202011120
1.0.2051
1.0.19-nightly.202011040
1.0.19-nightly.202010270
1.0.19-nightly.202010250
1.0.19-nightly.202010240
1.0.19-nightly.202010220
1.0.19-nightly.202010140
1.0.19-nightly.202010030
1.0.19-nightly.202010020
1.0.19-nightly.202009290
1.0.19-nightly.202009190
1.0.19-nightly.202009180
1.0.19-nightly.202009171
1.0.19-nightly.202009151
1.0.19-nightly.202009121
1.0.19-nightly.202009110
1.0.19-nightly.202009090
1.0.19-nightly.202009030
1.0.19-nightly.202009010
1.0.19-nightly.202008230
1.0.19-nightly.202008220
1.0.19-nightly.202008211
1.0.19-nightly.202008200
1.0.19-nightly.202008190
1.0.19-nightly.202008120
1.0.19-nightly.202008110
1.0.19-nightly.202008080
1.0.19-nightly.202008041
1.0.19-nightly.202008010
1.0.19-nightly.202007310
1.0.19-nightly.202007260
1.0.19-nightly.202007250
1.0.19-nightly.202007240
1.0.19-nightly.202007230
1.0.190
1.0.18-nightly.202007210
1.0.18-nightly.202007190
1.0.180
1.0.17-nightly.202007160
1.0.17-nightly.202007140
1.0.17-nightly.202007080
1.0.17-nightly.202006231
1.0.17-nightly.202006211
1.0.170
1.0.16-nightly.202006030
1.0.16-nightly.202006010
1.0.16-nightly.202005311
1.0.16-nightly.202005300
1.0.16-nightly.202005291
1.0.16-nightly.202005281
1.0.16-nightly.202005230
1.0.16-nightly.202005211
1.0.1611
1.0.15-nightly.202005190
1.0.15-nightly.202005180
1.0.15-nightly.202005160
1.0.15-nightly.202005140
1.0.15-nightly.202005120
1.0.150
1.0.13-nightly.202004300
1.0.13-nightly.202004290
1.0.13-nightly.202004250
1.0.13-nightly.202004240
1.0.13-nightly.202004221
1.0.13-nightly.202004190
1.0.13-nightly.202004180
1.0.13-nightly.202004160
1.0.13-nightly.202004151
1.0.13-nightly.202004100
1.0.13-nightly.202004091
1.0.13-nightly.202004081
1.0.13-nightly.202004070
1.0.13-nightly.202004040
1.0.13-nightly.202004010
1.0.13-nightly.202003310
1.0.13-nightly.202003300
1.0.13-nightly.202003291
1.0.13-nightly.202003280
1.0.13-nightly.202003271
1.0.13-nightly.202003261
1.0.13-nightly.202003241
1.0.13-nightly.202003230
1.0.13-nightly.202003210
1.0.13-nightly.202003190
1.0.13-nightly.202003170
1.0.13-nightly.202003150
1.0.134
1.0.12-nightly.202001161
1.0.12-nightly.202001150
1.0.12-nightly.202001140
1.0.12-nightly.202001120
1.0.12-nightly.202001110
1.0.12-nightly.202001100
1.0.12-nightly.202001090
1.0.12-nightly.202001080
1.0.12-nightly.202001070
1.0.12-nightly.202001050
1.0.12-nightly.202001040
1.0.12-nightly.202001020
1.0.12-nightly.202001011
1.0.12-nightly.201912290
1.0.12-nightly.201912270
1.0.12-nightly.201912240
1.0.12-nightly.201912200
1.0.12-nightly.201912150
1.0.12-nightly.201912131
1.0.12-nightly.201912120
1.0.12-nightly.201912111
1.0.12-nightly.201912101
1.0.12-nightly.201912051
1.0.12-nightly.201912030
1.0.12-nightly.201911270
1.0.12-nightly.201911230
1.0.12-nightly.201911220
1.0.12-nightly.201911210
1.0.12-nightly.201911201
1.0.12-nightly.201911190
1.0.12-nightly.201911170
1.0.12-nightly.201911160
1.0.12-nightly.201911121
1.0.12-nightly.201911090
1.0.12-nightly.201911080
1.0.12-nightly.201911070
1.0.12-nightly.201910290
1.0.12-nightly.201910250
1.0.12-nightly.201910240
1.0.12-nightly.201910230
1.0.12-nightly.201910220
1.0.12-nightly.201910200
1.0.12-nightly.201910181
1.0.12-nightly.201910150
1.0.12-nightly.201910110
1.0.12-nightly.201910101
1.0.12-nightly.201910090
1.0.12-nightly.201910010
1.0.12-nightly.201909261
1.0.1275
1.0.11-nightly.201909240
1.0.11-nightly.201909200
1.0.11-nightly.201909181
1.0.11-nightly.201909130
1.0.11-nightly.201909110
1.0.11-nightly.201909100
1.0.11-nightly.201909090
1.0.11-nightly.201909070
1.0.11-nightly.201906250
1.0.11-nightly.201906211
1.0.11-nightly.201906190
1.0.11-nightly.201906140
1.0.11-nightly.201906121
1.0.11-nightly.201906110
1.0.11-nightly.201906090
1.0.11-nightly.201906080
1.0.11-nightly.201906061
1.0.11-nightly.201906040
1.0.11-nightly.201906020
1.0.110
1.0.102
1.0.8-nightly.201903060
1.0.8-nightly.201902270
1.0.8-nightly.201902251
1.0.8-nightly.201902230
1.0.8-nightly.201902211
1.0.8-nightly.201902201
1.0.8-nightly.201902050
1.0.8-nightly.201902030
1.0.8-nightly.201902010
1.0.8-nightly.201901301
1.0.8-nightly.201901291
1.0.8-nightly.201901250
1.0.8-nightly.201901240
1.0.8-nightly.201901220
1.0.8-nightly.201901200
1.0.8-nightly.201901191
1.0.82
1.0.6-nightly.201901150
1.0.6-nightly.201901131
1.0.6-nightly.201901120
1.0.6-nightly.201901101
1.0.6-nightly.201901080
1.0.6-nightly.201812221
1.0.6-nightly.201812200
1.0.6-nightly.201812181
1.0.6-nightly.201812150
1.0.6-nightly.201812130
1.0.6-nightly.201812060
1.0.6-nightly.201812010
1.0.6-nightly.201811300
1.0.6-nightly.201811291
1.0.6-nightly.201811220
1.0.6-nightly.201811200
1.0.6-nightly.201811171
1.0.6-nightly.201811150
1.0.6-nightly.201811140
1.0.6-nightly.201811080
1.0.6-nightly.201811020
1.0.6-nightly.201810190
1.0.6-nightly.201810180
1.0.6-nightly.201810160
1.0.6-nightly.201810131
1.0.61
1.0.5-nightly.201810060
1.0.5-nightly.201810040
1.0.5-nightly.201810031
1.0.5-nightly.201809270
1.0.5-nightly.201809221
1.0.5-nightly.201809200
1.0.52
1.0.0-nightly.201804211,639
1.0.0-nightly.201804110
1.0.0-nightly.201804080
1.0.0-nightly.201804021
1.0.0-nightly.201803281
1.0.0-nightly.201803240
1.0.0-nightly.201803210
1.0.0-nightly.201803170
1.0.0-nightly.201803090
1.0.0-nightly.201803050
1.0.0-nightly.201803031
1.0.0-nightly.201802280
1.0.0-nightly.201802251
1.0.0-nightly.201802220
1.0.0-nightly.201802210
1.0.0-nightly.201802192
1.0.0-nightly.201802080
1.0.0-nightly.201802071
1.0.0-nightly.201802031
1.0.0-nightly.201801300
1.0.00
0.0.13-nightly.201706280
0.0.13-nightly.201706240
0.0.130

Package Sidebar

Install

npm i wabt

Weekly Downloads

12,172

Version

1.0.37

License

Apache-2.0

Unpacked Size

7.12 MB

Total Files

15

Last publish

Collaborators

  • dcode
  • assemblyscript