Skip to content


Pluma was designed for portability and simplicity, so it has few features, yet useful.

Quality Attributes:

  • Object-oriented
    Pluma provides high level plugin management through an interface that is simple and easy to understand.
  • Portable
    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.

Functional Attributes:

  • 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.