lib4d_sql is a C library that provides the required functions (connect, prepare, execute, etc.) for writing an SQL client for 4D databases. It uses the public 4D SQL protocol, which is supported by 4D products since version 11. It is already used by the PDO_4D Open Source project, and it might be used to provide others drivers for JDBC, ADO, or ActiveRecord.
hamsterdb Transactional Storage is an ANSI-C implementation of a key/value database engine. It has a lock-free architecture, thus supporting an arbitrary number of long-running transactions and resolves transaction conflicts in memory without accessing the disk. hamsterdb uses logical, idempotent logging for recovery. It is thread-safe and concurrent, moving performance intensive operations to the background. Every hamsterdb handle can be used from arbitrary threads.
libosl, the object storage layer, is a library for storing small to medium-sized data in relational tables. It is easy to use, lightweight, fast, and portable. libosl is suitable for applications that need only a small fraction of the features a full database management system provides.
The stx::CBTreeDB is a collection of C++ classes with which read-only key-value database files can be created and read. A database efficiently maps a large number of integral fixed-length keys to opaque binary value blobs. Variable-length or duplicate keys are currently not supported. Keys are organized into a highly compact index structure, which is very similar to a B-tree and allows very fast key lookups. Both keys and values are stored in order and thus queries in a local proximity can benefit from caching effects. All applications mapping a large number of constant, integral keys to string or data blobs can benefit from this library.
SMDB is a small, portable database library that exports an API similar that of GDBM and allows for the simple storage and retrieval of key/data couples. The library is totally system independent due to the use of externally supplied interface pointers. File locking is left to the caller, allowing single instance users to not pay the the price (in terms of performance and portability) of the locking framework. It supports transactions, multiple tables inside the same DB file, and is less than half the size of GDBM.