Modular YAMPL
- Mentors
- Vakhtang Tsulaia, Peter van Gemmeren
- Organization
- CERN-HSF
Modular YAMPL
The project fundamentally consists in developing a flexible plugin system that allows YAMPL to selectively load essential components at runtime. This makes YAMPL extremely modular and decoupled from the IPC backend modules, making it easy for anyone to add new backends or edit the existing ones without compromising the core YAMPL code.
In addition to the plugin system, the project proposes an overhaul and development of a python binding generation procedure which allows for continuous generation of the bindings whenever the core code is modified. The ultimate goal of the project is to make YAMPL more flexible, modular and extensible.
How is Modular YAMPL possible?
- An ABI-agnostic plugin middleware handles the runtime dynamic loading of the plugins, the communication between the YAMPL core code and the plugin as well as the marshalling of data. This system is designed with simplicity in mind and aims to be as solid and reliable as possible.
- A specifically designed open-source library (PyBind11) allows for seamless operability between C++11 and Python. This allows for an easy generation of the python bindings for all the core YAMPL primitives and data structures.