|Libdexter Reference Manual|
Libdexter is a library for implementing networked, plugin-based services. The library provides facilities to load and discover services and to instantiate them locally or as network-based objects that communicate with peer objects running remotely on Libdexter servers.
The main function of Libdexter is to implement remoteable, data sampling services. A data sampler is simply an object that takes a snapshot of data in some meaningful domain, stores it and delivers that data on request. Samplers can be implemented, for example, to monitor system and network activity; to advise of unread mail in your inbox; to read RSS feeds; to report local weather conditions; to display what song your music player is currently playing, etc.
One of the design goals for Libdexter is to make it easy-to-use, with clear, understandable library functions and minimal external dependencies. Libdexter was implemented in C using both the GLib Library and the GObject object system. I wanted to avoid "inflicting" GObject upon users of Libdexter, however, as that object system does have a learning curve for those completely unfamiliar with it. Accordingly, all of the GObject implementation details are hidden behind opaque structures. Hopefully this will make Libdexter much more approachable for any C or C++ programmer.
Implementing plugins for Libdexter is done using the library Libdexterplugin. That library provides the structures and interfaces needed to write plugins, as well as useful interfaces back to the main Libdexter library. Libdexter links to and uses Libdexterplugin for loading plugins, registering service types and instantiating objects. Refer to the Libdexterplugin Reference Manual for more information about writing plugins. Also please visit the Current Plugin List and feel free to notify me of any interesting plugins you care to contribute.