Show HN: TidesDB – High-performance durable, transactional embeddable database

github.com

1 points by alexpadula 5 hours ago

Hey hn, I'm excited to share that TidesDB has reached it's first major after a year of development, evolving from alpha to beta to the recent major and minor releases.

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

https://tidesdb.com

https://discord.gg/tWEmjR66cy

Thank you for checking out my post. I'm open to any questions, and I'd love to hear your thoughts.