# Install tkrzw with Homebrew, apt, dnf, Nix

Set of implementations of DBM. Version 1.0.32 via Homebrew; verified 2026-04-19.

## Install

```sh
sudo av install brew:tkrzw
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install tkrzw
```

  Evidence: local Homebrew formula metadata

### Linux

- Debian apt (92%):

```sh
sudo apt install libtkrzw-dev
```

  Evidence: Debian stable package indexes: libtkrzw-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install tkrzw
```

  Evidence: Fedora Rawhide package metadata: tkrzw from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#tkrzw
```

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

## Package facts

- **Package key:** brew:tkrzw
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/tkrzw>
- **Version:** 1.0.32
- **Source summary:** Set of implementations of DBM
- **Homepage:** <https://dbmx.net/tkrzw/>
- **Repository:** <https://github.com/estraier/tkrzw>
- **Upstream docs:** <https://dbmx.net/tkrzw>
- **License:** Apache-2.0
- **Source archive:** <https://dbmx.net/tkrzw/pkg/tkrzw-1.0.32.tar.gz>
- **Last updated:** 2026-04-19T03:01:26Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- tkrzw_build_util (cli)
- tkrzw_dbm_perf (cli)
- tkrzw_dbm_tran (cli)
- tkrzw_dbm_util (cli)
- tkrzw_file_perf (cli)
- tkrzw_langc_check (cli)
- tkrzw_str_perf (cli)
- tkrzw_ulog_util (cli)
- tkrzw_build_util (alias)
- tkrzw_dbm_perf (alias)
- tkrzw_dbm_tran (alias)
- tkrzw_dbm_util (alias)
- tkrzw_file_perf (alias)
- tkrzw_langc_check (alias)
- tkrzw_str_perf (alias)
- tkrzw_ulog_util (alias)

## Dependencies

- lz4
- xz
- zstd

## 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: 1.0.32
- Package-manager updated: 2026-04-19
- Local data: ok
- Upstream repository: https://dbmx.net/tkrzw/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

Tkrzw is Mikio Hirabayashi's C++17 DBM library: a family of embedded key-value database implementations with command-line utilities, language bindings, and a lineage connected to QDBM, Tokyo Cabinet, and Kyoto Cabinet.

### Project history

The official DBMx documentation defines DBM as persistent associative-array storage and presents Tkrzw as a C++ library implementing DBM with multiple algorithms. Its database classes include hash, tree, skip-list, in-memory, cache, standard-library-backed, polymorphic, sharded, asynchronous, and secondary-index implementations.

Tkrzw is explicitly documented as the successor to Kyoto Cabinet, Tokyo Cabinet, and QDBM, but with changed APIs and data formats rather than compatibility with those predecessors. That makes it part of a long-running family of compact embedded key-value stores associated with Hirabayashi's earlier database work.

The repository README points to the DBMx documentation as the main document and documents Unix-like and Windows build paths. The official site emphasizes portability across Unix-like systems and Windows, dependency injection for file implementations, and language interfaces for C, Java, Python, Ruby, and Go.

### Adoption history

Tkrzw's adoption is strongest among developers who need an embedded ordered or hash key-value store with predictable local-file behavior rather than a network database. Its package-manager footprint in the supplied facts includes Homebrew, Debian/Ubuntu libtkrzw-dev, Fedora/dnf, and Nix.

The ChangeLog shows sustained maintenance through the 1.0.x series, including interface compatibility notes for Java, Python, Ruby, and Go bindings. Releases in 2021 rapidly expanded durability, direct I/O, page cache, transaction, and update-log capabilities; later releases added search, encryption/compression, index, and C interface improvements.

### How it is used

Tkrzw is used as an embedded library by C++ programs and through language bindings when an application wants persistent key-value records in local files. The official documentation describes shared APIs for opening, setting, getting, removing, iterating, processing records atomically, rebuilding, and restoring databases.

The package also ships command-line utilities such as tkrzw_dbm_util and tkrzw_dbm_perf. For package users, these utilities make it inspectable and benchmarkable from the terminal, which is important for comparing DBM engines and debugging file-based stores.

### Why package nerds care

Tkrzw is significant because it continues a recognizable lineage of Japanese DBM libraries that have long appeared in Unix packaging systems. It is the modern C++17 member of a family package maintainers may remember from QDBM, Tokyo Cabinet, Kyoto Cabinet, and Kyoto Tycoon.

It is also a package-nerd kind of database: not a service to supervise, but a library plus CLI tools whose value depends on headers, pkg-config metadata, language bindings, ABI versioning, and careful release packaging.

### Timeline

- 2021-05: ChangeLog shows rapid 0.9.x releases adding direct I/O, page cache, transaction, and recovery work.
- 2021-09: ChangeLog shows update-log and message-queue utilities added around the 1.0.14 release.
- 2023-03: ChangeLog lists 1.0.27 with AES encryption support in the compressor path.
- 2024-10-22: ChangeLog lists release 1.0.32 and library version 1.75.0.

### Related projects

- QDBM, Tokyo Cabinet, and Kyoto Cabinet are the documented predecessors whose lineage Tkrzw succeeds without API or data-format compatibility.
- Tkrzw-RPC is the related DBMx service for sharing Tkrzw databases over gRPC.
- tkrzw-java, tkrzw-python, tkrzw-ruby, and tkrzw-go are separately packaged language interfaces named by the official documentation and ChangeLog.

### Sources

- <https://dbmx.net/tkrzw/ official overview, DBM explanation, supported classes, utilities, portability, language interfaces, FAQ lineage, and Tkrzw-RPC note>
- <https://github.com/estraier/tkrzw README for repository identity and build/install behavior>
- <https://github.com/estraier/tkrzw/blob/master/ChangeLog for release history and language-interface compatibility notes>
- source_facts.package-manager for Homebrew, Debian/Ubuntu, dnf, and Nix packaging


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** tkrzw
- **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

- Debian apt - libtkrzw-dev - 1.0.32-1+b1: normalized package name match | Debian stable package indexes: libtkrzw-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | set of implementations of DBM - development headers | https://dbmx.net/tkrzw/
- Debian apt - libtkrzw1t64 - 1.0.32-1+b1: normalized package name match | Debian stable package indexes: libtkrzw1t64 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | set of implementations of DBM - shared library | https://dbmx.net/tkrzw/
- Debian apt - tkrzw-doc - 1.0.32-1: normalized package name match | Debian stable package indexes: tkrzw-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | set of implementation of DBM - docs | https://dbmx.net/tkrzw/
- Debian apt - tkrzw-utils - 1.0.32-1+b1: normalized package name match | Debian stable package indexes: tkrzw-utils from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | set of implementations of DBM - utilities | https://dbmx.net/tkrzw/
- Nix - tkrzw: normalized package name match | nixpkgs package indexes: pkgs/by-name/tk/tkrzw/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - libtkrzw-dev - 1.0.27-1.1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: libtkrzw-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | set of implementations of DBM - development headers | https://dbmx.net/tkrzw/
- Ubuntu apt - libtkrzw1t64 - 1.0.27-1.1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: libtkrzw1t64 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | set of implementations of DBM - shared library | https://dbmx.net/tkrzw/
- Ubuntu apt - tkrzw-doc - 1.0.27-1.1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: tkrzw-doc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | set of implementation of DBM - docs | https://dbmx.net/tkrzw/
- Ubuntu apt - tkrzw-utils - 1.0.27-1.1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: tkrzw-utils from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | set of implementations of DBM - utilities | https://dbmx.net/tkrzw/
- dnf - tkrzw - 1.0.32-3.fc44: normalized package name match | Fedora Rawhide package metadata: tkrzw from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | A straightforward implementation of DBM | https://dbmx.net/tkrzw/
- dnf - tkrzw-devel - 1.0.32-3.fc44: normalized package name match | Fedora Rawhide package metadata: tkrzw-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Development files for Tkrzw | https://dbmx.net/tkrzw/
- dnf - tkrzw-doc - 1.0.32-3.fc44: normalized package name match | Fedora Rawhide package metadata: tkrzw-doc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Tkrzw API documentation | https://dbmx.net/tkrzw/
- dnf - tkrzw-libs - 1.0.32-3.fc44: normalized package name match | Fedora Rawhide package metadata: tkrzw-libs from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Libraries for applications using Tkrzw | https://dbmx.net/tkrzw/


## Related links

- [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.
- [Database and data packages](https://www.automicvault.com/pkg/database-data-tools/) - Matched database, SQL, migration, or data-store metadata.
- [lz4](https://www.automicvault.com/pkg/brew/lz4/) - Runtime dependency declared by Homebrew.
- [xz](https://www.automicvault.com/pkg/brew/xz/) - Runtime dependency declared by Homebrew.
- [zstd](https://www.automicvault.com/pkg/brew/zstd/) - Runtime dependency declared by Homebrew.
- [qdbm](https://www.automicvault.com/pkg/brew/qdbm/) - Shares av.db curated category or tags: cli, data, database, dbm, key-value.
- [tokyo-cabinet](https://www.automicvault.com/pkg/brew/tokyo-cabinet/) - Shares av.db curated category or tags: cli, data, database, dbm, embedded-database.
- [berkeley-db](https://www.automicvault.com/pkg/brew/berkeley-db/) - Shares av.db curated category or tags: cli, data, database, embedded-database, key-value-store.
- [gdbm](https://www.automicvault.com/pkg/brew/gdbm/) - Shares av.db curated category or tags: cli, data, database, dbm, embedded-database.
- [kyoto-cabinet](https://www.automicvault.com/pkg/brew/kyoto-cabinet/) - Shares av.db curated category or tags: cli, data, database, dbm, key-value-store.
- [lmdb](https://www.automicvault.com/pkg/brew/lmdb/) - Shares av.db curated category or tags: cli, data, database, embedded-database, key-value-store.
- [tdb](https://www.automicvault.com/pkg/brew/tdb/) - Shares av.db curated category or tags: cli, data, database, embedded-database, key-value-store.
- [dbxml](https://www.automicvault.com/pkg/brew/dbxml/) - Shares av.db curated category or tags: cli, data, database, embedded-database.
- [rocksdb](https://www.automicvault.com/pkg/brew/rocksdb/) - Local metadata places this package in an adjacent workflow. Shared terms: c-plus-plus, cli, data, database, embedded.

## Combined YAML source

View the package source record on GitHub. [combined/tkrzw.yml](https://github.com/automic-vault/db/blob/main/combined/tkrzw.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
