A Python wrapper for the WebAssembly Binary Toolkit (WABT)
Project description
wabt.py
wabt.py is a Python wrapper for the WebAssembly Binary Toolkit (WABT). It allows you to interact with WABT tools programmatically, making it easy to work with WebAssembly binaries and text formats in Python.
Features
- Run WABT tools programmatically: Includes support for tools like
wat2wasm,wasm2wat,wasm-validate,wasm-decompile, and more. - Cross-platform support: Works on Windows, macOS, and Linux.
- Automatic updates: Automatically downloads and updates the latest WABT binaries.
- Simple API: Provides a Pythonic interface for interacting with WABT tools.
Installation
You can install wabt via pip:
pip install wabt
Usage
Initialize WABT
To use the library, first initialize the Wabt class. This will ensure the latest WABT binaries are downloaded and ready to use.
from wabt import Wabt
Initialize WABT
wabt = Wabt()
Convert WAT to WASM
Convert a WebAssembly text file (.wat) to a binary file (.wasm).
wabt.wat_to_wasm("example.wat", output="example.wasm")
Convert WASM to WAT
Convert a WebAssembly binary file (.wasm) to a text file (.wat).
wabt.wasm_to_wat("example.wasm", output="example.wat")
Validate a WASM File
Validate a WebAssembly binary file.
output = wabt.wasm_validate("example.wasm")
print(output)
Decompile a WASM File
Decompile a WebAssembly binary file into a human-readable format.
wabt.wasm_decompile("example.wasm", output="example.dcmp")
Run Spectest Interpreter
Run a Spectest JSON file in the interpreter.
wabt.spectest_interp("test.json")
List of Supported Tools
The following WABT tools are supported:
wat2wasm: Convert WAT (WebAssembly Text) to WASM (WebAssembly Binary).wasm2wat: Convert WASM to WAT.wasm-validate: Validate a WebAssembly binary file.wasm-decompile: Decompile a WebAssembly binary file.wasm-interp: Run a WebAssembly binary in a stack-based interpreter.wasm-objdump: Print information about the contents of WebAssembly binaries.wasm-stats: Output statistics about a WebAssembly binary.wasm-strip: Remove sections from a WebAssembly binary file.wast2json: Convert a WAST (WebAssembly Spec Test) file to JSON.wat-desugar: Format a WAT file.wasm2c: Convert a WebAssembly binary to C code.
Advanced Usag
Custom Options
Most methods accept additional options to customize the behavior of the WABT tools. For example, you can validate a WASM file with verbose output by passing the --verbose option.
wabt.wasm_validate("example.wasm", options=["--verbose"])
Skip Updates
If you want to skip the automatic update process (e.g., for offline use), you can initialize the Wabt class with the skip_update parameter set to True.
wabt = Wabt(skip_update=True)
Requirements
- Python 3.6 or higher
- Internet connection (for downloading WABT binaries)
Acknowledgments
This library is built on top of the WebAssembly Binary Toolkit (WABT).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wabt-0.1.2.tar.gz.
File metadata
- Download URL: wabt-0.1.2.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b448bdd2cab44f8f19f138ab24d6c54e6f5b9f8d5fb71b26dce0f4a3bb7aa712
|
|
| MD5 |
b46c555dc7e7e1580ec670f1e813d98f
|
|
| BLAKE2b-256 |
0900fe06b8ca6e4d6f7369a934ebda3930328044bf08f0fee8f4b20821c1be4c
|
File details
Details for the file wabt-0.1.2-py3-none-any.whl.
File metadata
- Download URL: wabt-0.1.2-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23b980b3e0d9c3580d5defe2e17b2db82ca9ec1f25c2e8b79e438aa9f8e53d2f
|
|
| MD5 |
b182788c5092c12a7d20c83ff86b8019
|
|
| BLAKE2b-256 |
ad80a2925f1136c8f6a7a45d4dc20843908c38ce8698eefa6d6a08c17028eeff
|