wastrumentation
Portable WebAssembly Dynamic Analysis with Support for Intercession
Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 6 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.7%) to scientific vocabulary
Keywords
Repository
Portable WebAssembly Dynamic Analysis with Support for Intercession
Basic Info
Statistics
- Stars: 8
- Watchers: 4
- Forks: 1
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
Wastrumentation
Portable WebAssembly Dynamic Analysis with Support for Intercession
About
Wastrumentation is a dynamic analysis platform for WebAssembly that supports intercession. Wastrumentation is based on source code instrumentation, which weaves the analysis code directly into the target program code. Inlining the analysis into the target’s source code avoids dependencies on the runtime environment, making analyses portable across different Wasm VMs. Wastrumentation's approach enables the implementation of analyses in any Wasm-compatible language.
The architecture figure above describes the inner workings of Wastrumentation. Writing the input analysis directly in WebAssembly is tedious, this repository includes two DSLs that allow you to write your analysis in a high-level language, one for Rust and one for AssemblyScript.
Usage
Wastrumentation's dependencies can update over time.
The CI file (in .github/workflows) installs the dependencies and verifies all tests still pass.
Consider it the source of truth for the dependencies.
The dependencies are NodeJS, wasm-merge (from binaryen), and Rust + Cargo.
The following describes the steps to execute Wastrumentation as a command-line executable: ```bash
Verify dependencies are present
$ node --version && wasm-merge --version && rustc --version && cargo --version
Clone the repository
$ git clone https://github.com/aaronmunsters/wastrumentation.git $ cd wastrumentation
Execute Wastrumentation
$ cargo run --bin wastrumentation-cli \
--input-program-path
You can view example analyses developed in Rust here and those developed in AssemblyScript here.
Publication Reference
This platform and the related research was published at ECOOP 2025:
Citation (BibTeX)
Use the following BibTeX entry to cite this work:
@InProceedings{munsters_et_al:LIPIcs.ECOOP.2025.23,
author = {Munsters, A\"{a}ron and Scull Pupo, Angel Luis and {Gonzalez Boix}, Elisa},
title = {{Wastrumentation: Portable WebAssembly Dynamic Analysis with Support for Intercession}},
booktitle = {39th European Conference on Object-Oriented Programming (ECOOP 2025)},
pages = {23:1--23:29},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-373-7},
ISSN = {1868-8969},
year = {2025},
volume = {333},
editor = {Aldrich, Jonathan and Silva, Alexandra},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2025.23},
URN = {urn:nbn:de:0030-drops-233153},
doi = {10.4230/LIPIcs.ECOOP.2025.23},
annote = {Keywords: WebAssembly, dynamic analysis, instrumentation platform, intercession}
}
Owner
- Name: Aäron Munsters
- Login: aaronmunsters
- Kind: user
- Location: Schaarbeek
- Repositories: 2
- Profile: https://github.com/aaronmunsters
I'm a computer scientist student at the VUB.
Citation (CITATION.cff)
cff-version: 1.2.0
title: >-
Wastrumentation: Portable WebAssembly Dynamic Analysis
with Support for Intercession
message: >-
If you use Wastrumentation in your work, please cite the
following paper.
type: software
authors:
- family-names: Munsters
given-names: Aäron
- family-names: Scull Pupo
given-names: Angel Luis
- family-names: Gonzalez Boix
given-names: Elisa
identifiers:
- type: doi
value: 10.4230/LIPIcs.ECOOP.2025.23
- type: url
value: 'https://doi.org/10.4230/LIPIcs.ECOOP.2025.23'
repository-code: 'https://github.com/aaronmunsters/wastrumentation'
url: 'https://doi.org/10.4230/LIPIcs.ECOOP.2025.23'
keywords:
- WebAssembly
- dynamic analysis
- intercession
- instrumentation
license: CC-BY-4.0
version: 0.1.0
date-released: '2025-07-01'
GitHub Events
Total
- Watch event: 4
- Delete event: 1
- Push event: 18
- Public event: 1
- Pull request event: 2
- Fork event: 1
- Create event: 1
Last Year
- Watch event: 4
- Delete event: 1
- Push event: 18
- Public event: 1
- Pull request event: 2
- Fork event: 1
- Create event: 1
Dependencies
- actions/checkout v4 composite
- actions/setup-python v5 composite
- denoland/setup-deno v1 composite
- taiki-e/install-action nextest composite
- wat 1.228.0 development
- pest-test 0.1.6 development
- from-pest 0.3.3
- pest 2.7
- pest-ast 0.3.5
- pest_derive 2.7
- wasmtime-wasi 29.0 development
- bitmask 0.5.0