Hey hackernews! I'd like to share a hobby and passion project I've been working on for almost a year now. It's an open-source storage engine (underlying component of a database(s)) similar to that of LevelDB/RocksDB but written entirely in C.<p>The storage engine is called TidesDB.<p>TidesDB is written entirely in C. It's designed as a fast, transactional key-value storage engine built on a log-structured merge-tree (LSM-tree) architecture.<p>My journey with TidesDB began nearly 2 years ago whilst I was experimenting with various data structures and databases in Go. When I encountered the log-structured merge tree concept, I was initially overwhelmed by its complexity after reviewing other implementations.<p>However, after studying the original paper, I realized I could potentially simplify the design by focusing on just a 2-level approach(memory level and a disk level). This was challenging at first, and I scrapped many ideas along the way, but over time I discovered how powerful this design could potentially be.<p>The beauty of this design/architecture is its extensibility. Since the disk level contains many SSTables (Sorted String Tables), we can efficiently pair and merge them in various ways - whether in parallel for speed or incrementally to minimize resource impact.<p>What began as a challenging learning process has I believed evolved into a unique engine design and library.<p>You can check out TidesDB code here: <a href="https://github.com/tidesdb/tidesdb" rel="nofollow">https://github.com/tidesdb/tidesdb</a><p>Website here (Architecture-design, documentation and more): <a href="https://tidesdb.com" rel="nofollow">https://tidesdb.com</a><p>There are a variety of FFI libraries in the works for C++, GO, Python, Lua and more!<p>Currently TidesDB is nearing its first major release, we are still in beta development.<p>I'd love to get your thoughts, questions and all :)