Pluma was designed for portability and simplicity, so it has few features, yet useful.
Pluma provides high level plugin management through an interface that is simple and easy to understand.
Pluma aims to compile on at least the most common operating systems.
- Small and Simple
Serves a specific purpose, no extra unnecessary functionalities. Uses standard C++ code, doesn’t rely on any external library.
- Easily integrable
When integrating Pluma in an existing project, you don’t have to make modifications on the existing code.
- Dynamic Load/Unload of dynamic linking libraries (plug-ins)
Plug-ins may be loaded by giving the library name (without it’s file extension) to help on portability.
- Plug-in usage based on the Factory Pattern
Pluma provides host applications with a way to create objects of types provided by the plug-ins.
- Plug-ins version control
When the interface for the plug-ins is modified on the host side, old plugins may become incompatible with it. Pluma ensures that the interface used by host and plugins is compatible. Incompatible plugins won’t load.
- Macros that generate host-plugin communication code
Programmers don’t have to worry about the communication layer at all, simple macros takes care of it.