Berkeley DB is an embeddable database system that supports keyed access to
data. The software is distributed in source code form, and developers can
compile and link the source code into a single library for inclusion
directly in their applications.

Developers may choose to store data in any of several different storage
structures to satisfy the requirements of a particular application. In
database terminology, these storage structures and the code that operates on
them are called access methods. The library includes support for the
following access methods:

   * B+tree: Stores keys in sorted order, using either a programmer-supplied
     ordering function or a default function that does lexicographical
     ordering of keys. Applications may perform equality or range searches.
   * Hashing: Stores records in a hash table for fast searches based on
     strict equality. Extended Linear Hashing modifies the hash function
     used by the table as new records are inserted, in order to keep buckets
     underfull in the steady state.
   * Fixed and Variable-Length Records: Stores fixed- or variable-length
     records in sequential order. Record numbers may be immutable or
     mutable, i.e., permitting new records to be inserted between existing
     records or requiring that new records be added only at the end of the
     database.

Homepage:
http://www.sleepycat.com/
