Skip to content
Arash Mazidi edited this page Mar 8, 2023 · 6 revisions

Welcome to the WASMIZER wiki!

WASMIZER has two main parts:

1. Repository collection

2. Compilation

Repository collection

It uses Github search API to collect repositories based on a configuration. In order to run this tool, you need to input your configuration on config.json file.

Config.json file contains:

  • "keywords" --> WASMIZER collects repositories based on the keywords.

  • "date" --> WASMIZER collects repositories based on the date.

  • "stars" --> WASMIZER collects repositories which has more than this number of stars.

  • "forks" --> WASMIZER collects repositories which has more than this number of forks.

  • "size" WASMIZER collects repositories which their size are more than this number (KB).

  • "numOfSymptoms" --> WASMIZER gets symptoms in order to filter the repositories. You can define the number of symptoms and the symptoms in this parameter and following parameters, respectively.

  • "cmakecommand" and "makecommand" --> WASMIZER compile the c/c++ programs based on these command.

Compilation

In order to use WASMIZER in compilation phase, you should have installed Emscripten on your system. You can use https://emscripten.org/docs/getting_started/downloads.html to install emscripten. We used emscripten docker image. In addition, in order to convert wat files to wasm files, you need to install wat2wasm tool. You can use https://github.com/WebAssembly/wabt for this goal.

Further, there is a lib folder that contains libraries that are needed for WASMIZER. You can import all libraries in the classpath of the project. We tested the WASMIZER on the Eclipse IDE for JAVA Developers.

Then, you can run the WASMIZER by running the WASMIZER/blob/main/src/WASMIZER/WASMIZER_class.java.

WASMIZER will clone the repositories on the repobase folder. In addition, there are two folders wasm-wat-files and wasm-wat-files-pre that contains wasm and wat files after and before compilation, respectively.

Furthermore, name and date of all cloned repositories will be stored in the clonedrepo.csv and cloneddate.csv files, respectively. After compilation, you will have a meta data such as name, url, stars, and so on in the metadata.csv.

Clone this wiki locally