summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md69
1 files changed, 69 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..1cedd09
--- /dev/null
+++ b/README.md
@@ -0,0 +1,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/