
Estraier/tkrzw: a set of implementations of DBM - byronhe
https://github.com/estraier/tkrzw
======
byronhe
[https://dbmx.net/tkrzw/](https://dbmx.net/tkrzw/)

DBM (Database Manager) is a concept of libraries to store an associative array
on a permanent storage. In other words, DBM allows an application program to
store key-value pairs in a file and reuse them later. Each of keys and values
is a string or a sequence of bytes. The key of each record must be unique
within the database and a value is associated to it. You can retrieve a stored
record with its key very quickly. Thanks to simple structure of DBM, its
performance can be extremely high.

Tkrzw is a C++ library implementing DBM with various algorithms. It features
high degrees of performance, concurrency, scalability and durability. The
following classes are provided.

HashDBM : File datatabase manager implementation based on hash table.

TreeDBM : File datatabase manager implementation based on B+ tree.

SkipDBM : File datatabase manager implementation based on skip list.

TinyDBM : On-memory datatabase manager implementation based on hash table.

BabyDBM : On-memory datatabase manager implementation based on B+ tree.

CacheDBM : On-memory datatabase manager implementation with LRU deletion.

Std(Hash|Tree)DBM : On-memory DBM implementations using std::unordered_map and
std::map.

(Poly|Shard)DBM : Polymorphic and sharding datataba manager adapters.

(File|Mem)Index : Secondary index implementations.

