This is an alternative C driver for MongoDB, with slightly different goals than the official one:
libmongo-client is meant to be a stable (API, ABI and quality alike), clean, well documented and well tested shared library, that strives to make the most common use cases as convenient as possible.
The main purpose of this library is to provide a well maintained implementation, that suits a wider range of needs than the original:
- Well documented, easy, clean and stable API.
- Comprehensive test suite, with over 90% code coverage, and increasing.
- Ability to easily construct mongodb commands, to be sent at a later time (comes in handy when one is trying to write from a separate thread).
- ReplicaSet support, with support for automatic reconnecting and discovery.
- Safe-mode support, to optionally enable extra safety checks on writes, that make sure the server accepted the write.
- Convenient APIs to work with BSON objects and MongoDB documents.
- Connection pooling.
Apart from these, the library is meant to be used as a shared library, therefore API and ABI compatibility will be maintained, and only broken when absolutely neccessary - in which case, a sufficiently bumped version will be branched off.
Apart from the autotools and a C compiler, there are no other hard dependencies. However, would one wish to run the test suite, then Perl (with a suitable version of Test::Harness, along with the prove utility) will be needed aswell.
To build the documentation, Doxygen will be needed too.
The library follows the usual autotools way of installation:
$ git clone git://github.com/algernon/libmongo-client.git $ cd libmongo-client $ ./autogen.sh $ ./configure && make && make install
While former versions were released under the Apache License version 2.0, recent versions are released under the GNU Lesser General Public License, version 3 (or at your opinion, any later version).
See the COPYING.GPL and COPYING.LGPL files for license information.