{"repo":"Hk669/snaildb","free":true,"listed":false,"github":"https://github.com/Hk669/snaildb","clone":"git clone https://github.com/Hk669/snaildb.git","description":"🐌 persistent key-value store","language":"Rust","stars":10,"topics":["database","key-value-store","rust"],"license":"Apache-2.0","category":"databases-storage","readme_excerpt":"An embedded, persistent key-value store written in Rust. Principles - High write throughput - Optimized for write-heavy workloads - Durability - Write-ahead logging (WAL) ensures data persistence Installation Add to your Cargo.toml : Or install the binaries from GitHub Releases. Usage Library Usage (snaildb) Basic Operations Custom Flush Threshold Working with Strings Error Handling Examples See the examples directory for more detailed usage examples. Run them with: Configuration Flush Threshold The flush threshold determines when the in-memory memtable is flushed to disk as an SSTable. Default is 64 MiB. Architecture snailDB uses an LSM-tree (Log-Structured Merge-tree) architecture: 1. Memtable - In-memory structure for recent writes 2. WAL (Write-Ahead Log) - Ensures durability by logging all writes 3. SSTables - Immutable on-disk structures created from flushed memtables Roadmap Current work in progress: - Durable async WAL - Group commit and crash recovery improvements - Compaction - Background compaction to manage SSTable growth - Iterators & scans - Efficient range queries and prefix scans - Performance optimizations - Block caching and metrics License Licensed under the Apache License, Version 2.0. See LICENSE file for details. Contributing Contributions are welcome! Please feel free to submit a Pull Request. Links - GitHub Repository - Crates.io - Documentation","default_branch":null,"files":null,"tree":[],"storefront":"/r/Hk669","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Hk669/snaildb/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}