# Install cdb with Homebrew, MacPorts, Nix

Create and read constant databases. Version 20251021 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:cdb
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install cdb
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install cdb
```

  Evidence: MacPorts ports tree: databases/cdb/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#cdb
```

  Evidence: nixpkgs package indexes: pkgs/by-name/cd/cdb/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:cdb
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/cdb>
- **Version:** 20251021
- **Source summary:** Create and read constant databases
- **Homepage:** <https://cdb.cr.yp.to/>
- **Upstream docs:** <https://cdb.cr.yp.to/>
- **License:** LicenseRef-Homebrew-public-domain OR CC0-1.0 OR 0BSD OR MIT-0 OR MIT
- **Source archive:** <https://cdb.cr.yp.to/cdb-20251021.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- cdb64dump (cli)
- cdb64get (cli)
- cdb64make (cli)
- cdb64make-12 (cli)
- cdb64make-sv (cli)
- cdb64stats (cli)
- cdb64test (cli)
- cdbdump (cli)
- cdbget (cli)
- cdbmake (cli)
- cdbmake-12 (cli)
- cdbmake-sv (cli)
- cdbstats (cli)
- cdbtest (cli)
- cdb64dump (alias)
- cdb64get (alias)
- cdb64make (alias)
- cdb64make-12 (alias)
- cdb64make-sv (alias)
- cdb64stats (alias)
- cdb64test (alias)
- cdbdump (alias)
- cdbget (alias)
- cdbmake (alias)
- cdbmake-12 (alias)
- cdbmake-sv (alias)
- cdbstats (alias)
- cdbtest (alias)

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 20251021
- Local data: ok
- Upstream repository: https://cdb.cr.yp.to/
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

cdb is D. J. Bernstein's constant database package: a small file format and toolset for creating immutable key-value databases with fast lookups and atomic replacement. It is aimed at workloads where data is rebuilt wholesale and then read many times.

### Project history

The official cdb site describes cdb as a fast, reliable, simple package for creating and reading constant databases, with successful lookups in large databases normally taking two disk accesses and unsuccessful lookups one. The official format page republishes Bernstein's original 19960914 document, 'A structure for constant databases,' which defines the core cdb file layout, hash tables, records, little-endian 32-bit quantities, and hash function.

The official download page records cdb-0.55 on 1996-09-22 as the first release, cdb-0.70 on 2000-02-17 as an almost complete API rewrite with mmap suggested by Ken Lalonde, cdb-0.75 on 2000-02-19 as a bug-fix and performance release, and a 2025-10-21 release adding cdb64 support, configure/make install support, and updated documentation.

### Adoption history

cdb's adoption has been unusually long-lived for a tiny database format. The official site lists independent support packages and bindings in Perl, Ruby, Go, Rust, Python/Node wrappers through cdb64-rs, and TinyCDB wrappers. The Homebrew input also records cdb packages in Homebrew, MacPorts, and Nix.

### How it is used

cdb is used when a program needs a compact, immutable lookup table that can be regenerated atomically. The package includes cdbmake for building databases, cdbget for lookup, cdbdump for dumping records, cdbstats for inspection, and a C read API documented on the official site.

### Why package nerds care

For package nerds, cdb is part of the D. J. Bernstein software lineage and a canonical example of a tiny, stable file format that escaped its original codebase. Its appeal is the combination of predictable lookup behavior, crash-safe replacement, public-domain-style licensing in packaged builds, and easy reimplementation in many languages.

### Timeline

- 1996-09-14: Original cdb format document date on the official format page.
- 1996-09-22: cdb-0.55 first release on the official download page.
- 2000-02-17: cdb-0.70 rewrote almost everything from scratch and incorporated mmap.
- 2000-02-19: cdb-0.75 fixed a database creation bug and improved cdbmake performance.
- 2025-10-21: Official release added cdb64 support and modern configure/install support.

### Related projects

- The official intro page lists cdb64, cdb64-rs, CDB_File, cdb-full, CDB::TinyCDB, and Go implementations as packages that support the cdb or cdb64 formats.

### Sources

- <https://cdb.cr.yp.to/>
- <https://cdb.cr.yp.to/cdb.html>
- <https://cdb.cr.yp.to/cdbmake.html>
- <https://cdb.cr.yp.to/format.html>
- <https://formulae.brew.sh/api/formula/cdb.json>
- <https://cdb.cr.yp.to/download.html>


## Security Notes

broad file, network, media, or database tool signal.

- **Geiger risk:** blue / medium
- broad file, network, media, or database tool signal

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** cdb
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Nix - cdb: normalized package name match | nixpkgs package indexes: pkgs/by-name/cd/cdb/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- MacPorts - cdb: normalized package name match | MacPorts ports tree: databases/cdb/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [keydb](https://www.automicvault.com/pkg/brew/keydb/) - Shares av.db curated category or tags: cli, data, database, databases, key-value-store.
- [leveldb](https://www.automicvault.com/pkg/brew/leveldb/) - Shares av.db curated category or tags: cli, data, database, databases, key-value-store.
- [kyoto-cabinet](https://www.automicvault.com/pkg/brew/kyoto-cabinet/) - Shares av.db curated category or tags: cli, data, database, key-value-store.
- [rocksdb](https://www.automicvault.com/pkg/brew/rocksdb/) - Shares av.db curated category or tags: cli, data, database, databases, key-value-store.
- [tinycdb](https://www.automicvault.com/pkg/brew/tinycdb/) - Shares av.db curated category or tags: cli, constant-database, data, database, key-value-store.
- [tokyo-cabinet](https://www.automicvault.com/pkg/brew/tokyo-cabinet/) - Shares av.db curated category or tags: cli, data, database, databases, key-value-store.
- [apache-geode](https://www.automicvault.com/pkg/brew/apache-geode/) - Shares av.db curated category or tags: cli, data, database, databases.
- [cassandra](https://www.automicvault.com/pkg/brew/cassandra/) - Shares av.db curated category or tags: cli, data, database, databases.

## Combined YAML source

View the package source record on GitHub. [combined/cdb.yml](https://github.com/automic-vault/db/blob/main/combined/cdb.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
