https://github.com/aaronmunsters/wasm-glow-ballers

https://github.com/aaronmunsters/wasm-glow-ballers

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (6.1%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: aaronmunsters
  • Language: Rust
  • Default Branch: main
  • Size: 16.6 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme

README.md

Wasm Glow Ballers

Wasm Glow Ballers is a tool that retrieves a mapping of all exports and/or imports from a WebAssembly module. The output of the analyse function is a Map where keys are the names of exports/imports and values are their corresponding indices. Note that the imports are prefixed with their module name as module_name::import_name.

Example usage:

```bash

Clone this repo

git clone https://github.com/aaronmunsters/wasm-glow-ballers

cd into the rust-wasm library

cd wasm-glow-ballers/wasm-glow-ballers-js/

Package a NodeJS library

wasm-pack build --target nodejs # [1]

cd into the demo folder

cd ../demo/

Generate the WASM binary

wat2wasm demo.wat --output demo.wasm --enable-multi-memory # [2]

Use the NodeJS library to log the mapping where the target is the library itself

node demo.cjs # [3] ```

Which then outputs:

Reading WASM file: ./demo.wasm Global: Both: Map(3) { 'pi' => 2, 'env::imported_global' => 0, 'answer' => 1 } Exported: Map(2) { 'answer' => 1, 'pi' => 2 } Imported: Map(1) { 'env::imported_global' => 0 } Memory: Both: Map(2) { 'env::imported_memory' => 0, 'mem' => 1 } Exported: Map(1) { 'mem' => 1 } Imported: Map(1) { 'env::imported_memory' => 0 } Function: Both: Map(4) { 'add' => 1, 'subtract' => 2, 'env::imported_func' => 0, 'use_imports' => 3 } Exported: Map(3) { 'add' => 1, 'subtract' => 2, 'use_imports' => 3 } Imported: Map(1) { 'env::imported_func' => 0 } Table: Both: Map(2) { 'tbl' => 1, 'env::imported_table' => 0 } Exported: Map(1) { 'tbl' => 1 } Imported: Map(1) { 'env::imported_table' => 0 }

  • [1]: Tested using wasm-pack (version 0.13.0)
  • [2]: Tested using wat2wasm (version 1.0.36)
  • [3]: Running on NodeJS (version 22)

Owner

  • Name: Aäron Munsters
  • Login: aaronmunsters
  • Kind: user
  • Location: Schaarbeek

I'm a computer scientist student at the VUB.

GitHub Events

Total
  • Issue comment event: 2
  • Push event: 3
  • Pull request review event: 4
  • Pull request review comment event: 12
  • Pull request event: 2
  • Fork event: 1
  • Create event: 2
Last Year
  • Issue comment event: 2
  • Push event: 3
  • Pull request review event: 4
  • Pull request review comment event: 12
  • Pull request event: 2
  • Fork event: 1
  • Create event: 2

Dependencies

.github/workflows/rust.yml actions
  • actions/checkout v4 composite
Cargo.toml cargo
wasm-glow-ballers-js/Cargo.toml cargo
wasm-glow-ballers-lib/Cargo.toml cargo