GPlugin is a GObject based library that implements a reusable plugin system. It supports loading plugins in multiple other languages via loaders. It relies heavily on GObjectIntrospection to expose its API to the other languages.
It has a simple API which makes it very easy to use in your application. For more information on using GPlugin in your application, please see the embedding page.
GPlugin has a bit of history, you can read more about it in HISTORY.md
GPlugin currently supports plugins written in C/C++, Lua, Perl5, Python3, and Vala.
The in-development API reference for the development branch can be found at docs.pidgin.im/gplugin/latest.