1LDB(3) System Administration tools LDB(3)
2
3
4
6 ldb - A light-weight database library
7
9 #include <ldb.h>
10
12 ldb is a light weight embedded database library and API. With a
13 programming interface that is very similar to LDAP, ldb can store its
14 data either in a tdb(3) database or in a real LDAP database.
15
16 When used with the tdb backend ldb does not require any database
17 daemon. Instead, ldb function calls are processed immediately by the
18 ldb library, which does IO directly on the database, while allowing
19 multiple readers/writers using operating system byte range locks. This
20 leads to an API with very low overheads, often resulting in speeds of
21 more than 10x what can be achieved with a more traditional LDAP
22 architecture.
23
24 In a taxonomy of databases ldb would sit half way between key/value
25 pair databases (such as berkley db or tdb) and a full LDAP database.
26 With a structured attribute oriented API like LDAP and good indexing
27 capabilities, ldb can be used for quite sophisticated applications that
28 need a light weight database, without the administrative overhead of a
29 full LDAP installation.
30
31 Included with ldb are a number of useful command line tools for
32 manipulating a ldb database. These tools are similar in style to the
33 equivalent ldap command line tools.
34
35 In its default mode of operation with a tdb backend, ldb can also be
36 seen as a "schema-less LDAP". By default ldb does not require a schema,
37 which greatly reduces the complexity of getting started with ldb
38 databases. As the complexity of you application grows you can take
39 advantage of some of the optional schema-like attributes that ldb
40 offers, or you can migrate to using the full LDAP api while keeping
41 your exiting ldb code.
42
43 If you are new to ldb, then I suggest starting with the manual pages
44 for ldbsearch(1) and ldbedit(1), and experimenting with a local
45 database. Then I suggest you look at the ldb_connect(3) and
46 ldb_search(3) manual pages.
47
49 • ldbsearch(1) - command line ldb search utility
50
51 • ldbedit(1) - edit all or part of a ldb database using your
52 favourite editor
53
54 • ldbadd(1) - add records to a ldb database using LDIF formatted
55 input
56
57 • ldbdel(1) - delete records from a ldb database
58
59 • ldbmodify(1) - modify records in a ldb database using LDIF
60 formatted input
61
63 • ldb_connect(3) - connect to a ldb backend
64
65 • ldb_search(3) - perform a database search
66
67 • ldb_add(3) - add a record to the database
68
69 • ldb_delete(3) - delete a record from the database
70
71 • ldb_modify(3) - modify a record in the database
72
73 • ldb_errstring(3) - retrieve extended error information from the
74 last operation
75
76 • ldb_ldif_write(3) - write a LDIF formatted message
77
78 • ldb_ldif_write_file(3) - write a LDIF formatted message to a file
79
80 • ldb_ldif_read(3) - read a LDIF formatted message
81
82 • ldb_ldif_read_free(3) - free the result of a ldb_ldif_read()
83
84 • ldb_ldif_read_file(3) - read a LDIF message from a file
85
86 • ldb_ldif_read_string(3) - read a LDIF message from a string
87
88 • ldb_msg_find_element(3) - find an element in a ldb_message
89
90 • ldb_val_equal_exact(3) - compare two ldb_val structures
91
92 • ldb_msg_find_val(3) - find an element by value
93
94 • ldb_msg_add_empty(3) - add an empty message element to a
95 ldb_message
96
97 • ldb_msg_add(3) - add a non-empty message element to a ldb_message
98
99 • ldb_msg_element_compare(3) - compare two ldb_message_element
100 structures
101
102 • ldb_msg_find_int(3) - return an integer value from a ldb_message
103
104 • ldb_msg_find_uint(3) - return an unsigned integer value from a
105 ldb_message
106
107 • ldb_msg_find_double(3) - return a double value from a ldb_message
108
109 • ldb_msg_find_string(3) - return a string value from a ldb_message
110
111 • ldb_set_alloc(3) - set the memory allocation function to be used by
112 ldb
113
114 • ldb_set_debug(3) - set a debug handler to be used by ldb
115
116 • ldb_set_debug_stderr(3) - set a debug handler for stderr output
117
119 ldb was written by Andrew Tridgell[1].
120
121 If you wish to report a problem or make a suggestion then please see
122 the http://ldb.samba.org/ web site for current contact and maintainer
123 information.
124
125 ldb is released under the GNU Lesser General Public License version 2
126 or later. Please see the file COPYING for license details.
127
129 1. Andrew Tridgell
130 https://www.samba.org/~tridge/
131
132
133
134LDB 1.1 08/08/2022 LDB(3)