Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LDB(3)			   System Administration tools			  LDB(3)

NAME
     ldb - A light-weight database library

SYNOPSIS
     #include <ldb.h>

DESCRIPTION
     ldb is a light weight embedded database library and API. With a programming
     interface	that is very similar to LDAP, ldb can store its data either in a
     tdb(3) database or in a real LDAP database.

     When used with the tdb backend ldb does not require  any  database  daemon.
     Instead,  ldb  function calls are processed immediately by the ldb library,
     which does IO directly on	the  database,	while  allowing  multiple  read-
     ers/writers  using  operating system byte range locks. This leads to an API
     with very low overheads, often resulting in speeds of more  than  10x  what
     can be achieved with a more traditional LDAP architecture.

     In  a  taxonomy  of databases ldb would sit half way between key/value pair
     databases (such as berkeley db or tdb) and a full	LDAP  database.  With  a
     structured attribute oriented API like LDAP and good indexing capabilities,
     ldb  can  be  used  for  quite sophisticated applications that need a light
     weight database, without the administrative overhead of a full LDAP instal-
     lation.

     Included with ldb are a number of useful command line tools for  manipulat-
     ing a ldb database. These tools are similar in style to the equivalent ldap
     command line tools.

     In  its  default mode of operation with a tdb backend, ldb can also be seen
     as a "schema-less LDAP". By default ldb does not require  a  schema,  which
     greatly  reduces  the  complexity of getting started with ldb databases. As
     the complexity of you application grows you can take advantage of	some  of
     the  optional schema-like attributes that ldb offers, or you can migrate to
     using the full LDAP api while keeping your exiting ldb code.

     If you are new to ldb, then I suggest starting with the  manual  pages  for
     ldbsearch(1)  and ldbedit(1), and experimenting with a local database. Then
     I suggest you look at the ldb_connect(3) and ldb_search(3) manual pages.

TOOLS
     *	 ldbsearch(1) - command line ldb search utility

     *	 ldbedit(1) - edit all or part of a ldb database  using  your  favourite
	 editor

     *	 ldbadd(1) - add records to a ldb database using LDIF formatted input

     *	 ldbdel(1) - delete records from a ldb database

     *	 ldbmodify(1)  -  modify  records in a ldb database using LDIF formatted
	 input

FUNCTIONS
     *	 ldb_connect(3) - connect to a ldb backend

     *	 ldb_search(3) - perform a database search

     *	 ldb_add(3) - add a record to the database

     *	 ldb_delete(3) - delete a record from the database

     *	 ldb_modify(3) - modify a record in the database

     *	 ldb_errstring(3) - retrieve extended error information  from  the  last
	 operation

     *	 ldb_ldif_write(3) - write a LDIF formatted message

     *	 ldb_ldif_write_file(3) - write a LDIF formatted message to a file

     *	 ldb_ldif_read(3) - read a LDIF formatted message

     *	 ldb_ldif_read_free(3) - free the result of a ldb_ldif_read()

     *	 ldb_ldif_read_file(3) - read a LDIF message from a file

     *	 ldb_ldif_read_string(3) - read a LDIF message from a string

     *	 ldb_msg_find_element(3) - find an element in a ldb_message

     *	 ldb_val_equal_exact(3) - compare two ldb_val structures

     *	 ldb_msg_find_val(3) - find an element by value

     *	 ldb_msg_add_empty(3) - add an empty message element to a ldb_message

     *	 ldb_msg_add(3) - add a non-empty message element to a ldb_message

     *	 ldb_msg_element_compare(3) - compare two ldb_message_element structures

     *	 ldb_msg_find_int(3) - return an integer value from a ldb_message

     *	 ldb_msg_find_uint(3) - return an unsigned integer value from a ldb_mes-
	 sage

     *	 ldb_msg_find_double(3) - return a double value from a ldb_message

     *	 ldb_msg_find_string(3) - return a string value from a ldb_message

     *	 ldb_set_alloc(3) - set the memory allocation function to be used by ldb

     *	 ldb_set_debug(3) - set a debug handler to be used by ldb

     *	 ldb_set_debug_stderr(3) - set a debug handler for stderr output

ENVIRONMENT VARIABLES
     *	 LDB_URL - connect to the provided URL (cmdline tools only)

     *	 LDB_MODULES_PATH - path where to load ldb modules from

     *	 LDB_MODULES_ENABLE_DEEPBIND  -  enable  RTLD_DEEPBIND	when loading ldb
	 modules

AUTHOR
     ldb was written by Andrew Tridgell[1].

     If you wish to report a problem or make a suggestion then	please	see  the
     http://ldb.samba.org/  web site for current contact and maintainer informa-
     tion.

     ldb is released under the GNU Lesser General Public License  version  2  or
     later. Please see the file COPYING for license details.

NOTES
      1. Andrew Tridgell
	 https://www.samba.org/~tridge/

LDB 1.1 			   08/01/2026				  LDB(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ldb&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help