2 Quick guide for the patience-impaired
3 -------------------------------------
5 At the top level directory, run:
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,
49 For instance, to build with bdb backend and without TIPC support, use:
51 $ make BE_ENABLE_BDB=1 ENABLE_TIPC=0
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.
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.