TidesDB is a fast, embeddable key-value storage engine library written in C, built on an LSM-tree architecture. It's designed as a foundational library you can embed directly into your applications - similar to LMDB or LevelDB, but with some unique features.
Some features
- Atomic, consistent, isolated (Read Committed), and durable transactions with multi-column-family support
- Non-blocking readers with serialized writers per column family using COW semantics
- Isolated key-value stores with independent configuration per column family
- Multi-threaded SSTable merging with configurable parallelism (default 4 threads)
- Snappy, LZ4, and ZSTD compression support
- Configurable bloom filters to reduce disk I/O
- Automatic key expiration via TTL
- Registerable custom key comparison functions
- Cross-platform support for Linux, macOS, and Windows (MinGW-w64 and MSVC)
- Simple C API with consistent error codes (0 = success, negative = error)
What's new and finalized v1.x?
- Bidirectional iterators with reference counting for safe concurrent access
- Background compaction
- Async flushing
- LRU file handle cache to limit system resources
- Write-ahead log with automatic crash recovery
- Sorted Binary Hash Array for fast SSTable lookups
- Configurable sync modes (NONE, BACKGROUND, FULL) for durability vs performance tradeoff
Few links for yeah
https://github.com/tidesdb/tidesdb
Thank you for checking out my post. I'm open to any questions, and I'd love to hear your thoughts.