TidesDB is a fast and efficient transactional key value storage engine library written in C. The underlying data structure is based on a log-structured merge-tree (LSM-tree).
It is not a full-featured database, but rather a library that can be used to build a database atop of or used as a standalone key-value/column store.
- ACID with MVCC
- Column families
- Key-value separation
- Hybrid LSM+BTree
- Lock-free internals
- Extensive transactional API (5 isolation levels), including 2PC-XA
- Ordered bidirectional iteration, with range-bounded scans
- Range deletes
- Configurable compression pipeline (Snappy, LZ4, Zstd)
- Partition range filters
- TTL
- Configurable durability (none, interval, full sync)
- Extensive statistics and metrics
- Crash safe and durable
- Low space and write amplification
- Cross-platform with file portability on Linux, macOS, Windows, BSD variants, Solaris/Illumos on x86, ARM, RISC-V, PowerPC (32-bit and 64-bit)
Join the TidesDB Discord Community to ask questions, work on development, and discuss the future of TidesDB.
Multiple licenses apply to TidesDB. The primary license is Mozilla Public License Version 2.0 (TidesDB), while additional licenses apply to the dependencies used in the project.
Mozilla Public License Version 2.0 (TidesDB)
== AND ==
BSD 2 (xxHash - Yann Collet)
== (optionally) ==
BSD 3 Clause (Snappy)
BSD 2 (LZ4)
BSD (Zstandard)