1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
libmongo-client
===============
[![Build Status](https://travis-ci.org/algernon/libmongo-client.png?branch=master)](https://travis-ci.org/algernon/libmongo-client)
This is an alternative C driver for [MongoDB][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.
Features
--------
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.
Requirements
------------
Apart from [glib][glib] (with header files - usually found in a
development package - installed), there are no other hard
dependencies. Though, one will need [Perl][perl] (with a suitable
version of Test::Harness, along with the prove utility) to run the
test suite.
To build the documentation, [Doxygen][doxygen] will be needed too.
Installation
------------
The library follows the usual autotools way of installation (one will
need libtool 2.2+ to build from git!):
$ git clone git://github.com/algernon/libmongo-client.git
$ cd libmongo-client
$ autoreconf -i
$ ./configure && make && make install
License
-------
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).
[mongodb]: http://www.mongodb.org/
[glib]: http://developer.gnome.org/glib/
[perl]: http://www.perl.org/
[doxygen]: http://www.stack.nl/~dimitri/doxygen/
|