We're developing an application that will have a plug-in "architecture" to allow consumers of the app to provide their own proprietary algorithms. (We will basically have a set of parsers and allow third parties to provide their own as well)
The domain space requires very high performance, so out-of-process bindings are not going to work and we'd rather leave the heavyweight things like CORBA and COM alone.
Basically we're looking for a simple cross-platform wrapper around:
- load library from a relative path
- provide a mapping of the particular dll/.so to some configuration/name
- do some initialization and query the library to ensure it provides the necessary functionality
I think this is really just a wrapping around loadlibrary() and the method calls exported. We can write this ourselves, but we'd rather use existing code as we have enough on our plate.
Again, throughput and performance are very very important.
Similar questions are:
http://stackoverflow.com/questions/960836/cross-platform-alternative-to-com - this one is close, but we want in-process only - no need for out of process and our needs are a little "lighter weight".
http://stackoverflow.com/questions/1235165/c-cross-platform-dynamic-libraries-linux-and-windows
This is for unmanaged C++ - we cannot use .NET
EDIT - what we found
We found that Poco works great for our needs. As a bonus This page is a much appreciated comment on the state of C++ development and the language direction...
It was a simple cross platform wrapping that we needed that Poco provides. Really there is not much to it, but still saves us time and testing. No additional overhead during run time.