wasm-cpp is an in-progress WebAssembly runtime environment written in C++17 and C11 with a Python3.6 frontend.
This project is currently unfinished and untested.
Supports standard WebAssembly features like static linking of wasm modules as well as:
- Full stack traces upon trapping.
The following features will likely be added in the future, once the author has time to implement them.
- A CPython module which allows dynamic debugging via a Python shell or script.
- A debug build which carries type information for all values in the wasm runtime.
- An optimized instruction dispatch loop that uses GCC's computed goto (labels as values) feature.
- A built-in "env" module, similar to what is provided by binaryen
The only dependencies that wasm-cpp has are the languages it is written in (and their associated standard libraries). That is, wasm-cpp only depends on:
- A C++17 compiler and standard library implementation.
- A C11 compiler and standard library implementation.
- CPython3.6 and its standard library.
Only an incomplete, non-portable CMakeLists.txt is provided at this time. As the project nears completion, a proper installation method and guide will be provided.
Coming soon.
Contributions and bug reports are welcome. Please submit all patches and bug reports via Github's pull request and issues features, respectively.
Thie project is licensed under the MIT License. See MIT-LICENSE for details.