Skip to content
forked from Becavalier/twvm

A tiny, lightweight and efficient WebAssembly virtual machine.

License

Notifications You must be signed in to change notification settings

CrackerCat/TWVM

 
 

Repository files navigation

GitHub Actions status

A tiny, lightweight and efficient WebAssembly virtual machine.

Getting Started

Status

Not production-ready yet, feel free to keep tracking the project status by clicking "Watch".

Compile

If you want to compile and use this project, please install the following softwares in advance:

then, run the following command to compile:

npm run build

Others

  • Code Lint:

We use "cpplint" to check the code style, you can install it by follow command:

pip install cpplint

And lint the source code by:

npm run lint

  • Memory Check:

Install "valgrind" on MacOS according to the following articles first:

How to Install Valgrind on macOS High Sierra

Valgrind on macOs 10.14/10.15

Then run the following command to detect the memory leak of the binary version program:

npm run memcheck

Roadmap

  • Basic Wasm interpreter on fibonacci;
  • Basic optimizations:
    • Cache based opcode&immediates;
    • Constant pool;
    • Module stream loading;
  • JIT compiler based optimization;
  • Stage based full-path type validation;
  • Full Wasm MVP proposals support;
  • Experimental SIMD instructions;
  • Basic WASI standard libraries;

Copyright and License

Licensed under the MIT License;

About

A tiny, lightweight and efficient WebAssembly virtual machine.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.3%
  • CMake 2.0%
  • Other 0.7%