nmdb: Add LevelDB support
[nmdb.git] / INSTALL
blob0f7d4e044cc13e0673cc238076183ed0e9d30fdd
2 Quick guide for the patience-impaired
3 -------------------------------------
5 At the top level directory, run:
7  $ make install
9 to build and install the server, library and utilities.
12 How to compile and install
13 --------------------------
15 The only mandatory requisite to build nmdb is libevent
16 (http://www.monkey.org/~provos/libevent/).
18 There are several build-time options, in two groups: supported network
19 protocols, and backend databases.
21 The network protocols:
23  * TCP and UDP, the well-known network protocols.
24  * TIPC (http://tipc.sf.net/), a cluster-oriented network protocol. You will
25         need a Linux kernel >= 2.6.16 with TIPC support (most distributions
26         enable it by default).
27  * SCTP, a network protocol similar to UDP and TCP, offering reliable message
28         passing over IP, among other very useful things. You will need the
29         libsctp-dev (or equivalent) package.
31 The backend databases:
33  * qdbm (http://qdbm.sf.net/)
34  * bdb (http://www.oracle.com/database/berkeley-db/)
35  * Tokyo Cabinet (http://1978th.net/tokyocabinet/)
36  * tdb (http://tdb.samba.org/)
37  * A null backend (to use when you don't need a real one)
39 By default, network protocols and backends are automatically detected
40 according to the available libraries.
42 You can change the defaults by passing parameters to make, like this:
44  $ make BE_ENABLE_$BACKEND=[1|0] ENABLE_$PROTO=[1|0]
46 Where $PROTO can be TCP, UDP, TIPC or SCTP, and $BACKEND can be QDBM, BDB, TC,
47 TDB or NULL.
49 For instance, to build with bdb backend and without TIPC support, use:
51  $ make BE_ENABLE_BDB=1 ENABLE_TIPC=0
54 Bindings
55 --------
57 To compile the Python bindings, you need to have the library already
58 installed. Use "make python_install" at the top level directory to build and
59 install the modules. The module will be named "nmdb". The same goes for Python
60 3, use "make python3_install".
62 The other bindings do not have a properly defined install procedure, and
63 you'll need knowledge of the language to install them.
66 Tests
67 -----
69 Tests are available in the "tests/" directory. Some are written in C
70 ("tests/c/"), some in Python ("tests/python/").
72 Python tests are useful for stress and coverage tests, while the C ones are
73 useful for performance measurements.