Wasp
Wasp is an embeddable micro-hypervisor designed to support virtines, lightweight, isolated execution contexts for individual functions. Virtines can either be created manually by invoking a runtime API, or automatically by using our Clang/LLVM compiler extensions. In the latter case, a develper can create a virtine by simply adding a keyword to a C function:
virtine int foo (int arg) {
// code
}
Paper
- Isolating Functions at the Hardware Limit with Virtines
Nicholas C. Wanninger, Joshua J. Bowden, Kyle C. Hale
The 17th European Conference on Computer Systems (EuroSys '22, to appear)
Build Instructions
make
sudo make install
Yeah its pretty easy.
Using
Just include it as a shared library when building:
clang++ -lwasp main.cpp -o main
Run Virtine Tests
TODO
Reproduce Paper Results
TODO
Code Structure
TODO
Acknowledgements
Wasp and the virtines codebase were made possible with support from the
United States National Science
Foundation (NSF) via grants CRI-1730689, REU-1757964, CNS-1718252, and CNS-1763612.
License
Contact
The Wasp/virtines codebase is currently maintained by Nicholas Wanninger (ncw [at] u [dot] northwestern [dot] edu).