| VILLASframework
    Modular co-simulation framework | 
Developement is currently coordinated by Steffen Vogel stvogel@eonerc.rwth-aachen.de using GitLab. Please feel free to submit pull requests or bug reports.
A https://git.rwth-aachen.de/acs/public/villas/node/blob/master/CONTRIBUTING.md "contribution guide" is available in the Git repository.
VILLASnode is currently written in C/C++ using the ISO C11 and C++14 standards while following an object oriented programming paradigm.
Main classes in VILLASnode are struct sample, struct vnode, struct vpath and class villas::node::Hook. In order to track the life cycle of those objects, each of them has an enum State member. The following figure illustrates the state machine which is used:
VILLASnode is split into a shared library called libvillas and a couple of executables (villas-node, villas-pipe, villas-test, villas-signal, ...) which are linked against this library.
There are many places where VILLASnode can easily extended with plugins. All node, formats-types and hooks are implemented via plugins.