tinycompo is a lightweight framework to write component-based applications in C++.
tinycompo is a header-only framework. To use it, simply add tinycompo.hpp to your project and include it where necessary. The license that tinycompo uses (CeCILL-B) should be compatible with direct inclusion in most,, if not all, projects.
Note that tinycompo requires C++11.
Be sure to use a C++11-compatible compiler (e.g., gcc 5) and to use the --std=c++11 compilation flag (or the flag for a more recent version like C++14).
tinycompo proposes to write object-oriented programs, or parts of object-oriented programs, as component assemblies. A component assembly is a set of object instances connected together, typically by holding pointers to one another. An object in this context, because it is meant to be composed with other objects, is called a component.
Instead of instantiating objects directly, tinycompo works by declaring a model of what objects to instantiate and how to connect them together. Such a model can then be instantiated into a concrete assembly.
Advantages of the tinycompo approach include:
- Encourages composition over inheritance.
- Provides a high-level view of application structure.
- By decoupling assembly declaration and instantiation,