GPlugin is a GObject based library that implements a reusable plugin system which supports loading plugins in other languages via loaders. It relies heavily on GObjectIntrospection to expose its API to the other languages.
It has a very simple API which makes it very simple to use in your application. For more information on using GPlugin in your application, please see the embedding page.
GPlugin was started due to the infamous "Plugin Problem" for Guifications 3, which was that I needed plugins that could depend on each other, be able to be written in other languages, have plugins that are loaded before the main load phase, and allow plugins to register types into the GObject type system.
After trying to fix this numerous times in the Guifications 3 tree, I decided I should really do this the UNIX way and write it as a stand alone library.
GPlugin currently supports plugins written in C/C++, Python, and Lua. With work started on a Perl loader.
- Embedding GPlugin
- Writing a Loader in C/C++
- Writing C/C++ plugins
- Writing Python plugins
- Writing Lua plugins
- libpeas comparison
The API reference can be found here. It's pretty rough around the edges right now, but I'm working on it.