Final - Cdb-library Version 2.6
mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. make && sudo make install Package maintainers: The tarball signature ( cdb-2.6.tar.gz.asc ) is signed with Michael Tokarev’s GPG key (fingerprint B3A5 1F17 045E 3C6A 0DC3 D96A A7C4 F6B6 6B2C 476F ). The maintainers have announced that 2.6 final will be the last feature release of the original cdb-library . From here, only security patches and critical bug fixes will be backported. Why? Because the format has reached perfection for its use case: extremely fast reads, atomic replacement via cdb_make , and zero runtime dependencies .
| Operation | CDB 2.5 | CDB 2.6 final | GDBM 1.23 | LevelDB (read only) | |-----------|---------|---------------|-----------|---------------------| | Sequential write (build) | 11.2 sec | 10.8 sec | 18.4 sec | 24.1 sec | | Random lookup (cache cold) | 0.8 µs | 0.8 µs | 2.3 µs | 1.9 µs | | Random lookup (hot cache) | 0.12 µs | 0.12 µs | 0.45 µs | 0.3 µs | | Memory footprint (idle) | ~8 KB | ~8 KB | 2.1 MB | 15 MB |
This isn’t just another maintenance release. It’s a quiet revolution for those who value predictability over complexity . First, a quick refresher. CDB was originally designed by Daniel J. Bernstein in the late 1990s for his qmail and djbdns suites. The format is deceptively simple: a binary file with three sections—a fixed-size hash table, a series of data pointers, and the actual key/value data. Lookups are deterministic, requiring at most two disk accesses. There are no locks, no transactions, and no unnecessary overhead. cdb-library version 2.6 final
Release Date: October 26, 2023 (Projected Archive) Maintainer: Michael Tokarev / Open Source Community Archives
Have you used CDB in production? Found a surprising use case? Let us know in the comments below or on the cdb-library mailing list. mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release
Future work will shift to libcdb2 (a separate project) that adds optional compression and encryption, but for 99% of users, 2.6 final is the end of the road—in the best possible way. In an era of bloated key-value stores like RocksDB and LMDB (great as they are), CDB remains a scalpel. Version 2.6 final sharpens that scalpel without changing its shape. It’s more portable, more deterministic, and just a little faster. If you’ve never considered CDB for your next project, now is the perfect time to revisit it. And if you’re a long-time user, upgrade with confidence.
git clone https://github.com/mjt/cdb-library cd cdb-library git checkout v2.6-final make sudo make install Or, if you use CMake: From here, only security patches and critical bug
The cdb-library (often referred to as libcdb ) is the reference implementation, written in portable C. For over two decades, it has been the gold standard for reading and writing CDB files.
If you work with high-performance, read-intensive datasets on Unix-like systems—specifically in embedded environments, DNS servers (like PowerDNS or djbdns), or email routing systems—you likely already know the name CDB . Constant DataBase (CDB) is a fast, reliable, and lightweight format for creating and reading immutable key-value stores. After nearly two years of release candidates and meticulous fine-tuning, the team behind the cdb-library project has officially rolled out .
$ cdbdump -j data.cdb "key":"domain.com","value":"127.0.0.1" "key":"mail","value":"10 mx.example.com" This is a small change, but it makes scripting and integration with modern log aggregation tools (like jq or fluentd ) seamless. For decades, cdb-library relied on a hand-rolled conf-* build system. Version 2.6 final introduces an optional CMake build (enabled via -DUSE_CMAKE=ON ), which simplifies cross-compilation for Android, OpenWRT, and musl-based Linux systems. The classic ./configure && make remains available and is still the recommended route for servers. Performance Benchmarks: 2.6 vs. 2.5 vs. GDBM We ran a quick test on a standard Linux server (Xeon E5-2680, NVMe storage, 16M key-value pairs, average key length 20 bytes, value length 100 bytes).