Skip to content


Subversion checkout URL

You can clone with
Download ZIP
An obsolete library. Don't use it in new projects.
C Perl XSLT Shell
Latest commit 7ccdf08 @algernon bson: Fix an int size mismatch in _bson_cursor_find()
_bson_cursor_find() used gint32 for position tracking, while
initializing it to a size_t value. With gcc5 on higher optimisation
levels, this made tests fail. The obvious fix is to use size_t for
position tracking. Fixes #36.

Reported-by: Jörg Frings-Fürst
Signed-off-by: Gergely Nagy <>


Build Status Coverage Status

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.

Looking for a new home

I do not use neither this driver, nor MongoDB anymore, and development on this driver stopped a while ago. I am looking for a new maintainer to take over development and maintenance, please contact me if interested.


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 glib (with header files - usually found in a development package - installed), there are no other hard dependencies. Though, one will need Perl (with a suitable version of Test::Harness, along with the prove utility) to run the test suite.

To build the documentation, Doxygen will be needed too.


The library follows the usual autotools way of installation (one will need libtool 2.2+ to build from git!):

 $ git clone git://
 $ cd libmongo-client
 $ autoreconf -i
 $ ./configure && make && make install


Although the code is not based on any other driver, it is released under the same Apache License, version 2.0 (included as the file LICENSE).

Something went wrong with that request. Please try again.