Expand description
§rskv: A High-Performance Key-Value Store in Rust
rskv is a high-performance, concurrent, persistent key-value store inspired by
Microsoft’s FASTER. It leverages modern Rust features for safety and performance.
§Core Features
- Hybrid Storage Engine: Combines in-memory hot data with disk-backed log
- Concurrent Hash Index: Lock-free hash index for fast key lookups
- Non-Blocking Checkpoints: Consistent snapshots without pausing operations
- Epoch-Based Garbage Collection: Safe background space reclamation
§Example
ⓘ
use rskv::{RsKv, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::default();
let kv_store = RsKv::new(config).await?;
let key = b"hello".to_vec();
let value = b"world".to_vec();
kv_store.upsert(key.clone(), value).await?;
let result = kv_store.read(&key).await?;
println!("Value: {:?}", result);
Ok(())
}Re-exports§
pub use background::BackgroundTaskManager;pub use background::BackgroundTaskStats;pub use checkpoint::CheckpointMetadata;pub use checkpoint::CheckpointState;pub use checkpoint::CheckpointStats;pub use common::Address;pub use common::Config;pub use common::Key;pub use common::Result;pub use common::RsKvError;pub use common::Value;pub use epoch::EpochHandle;pub use epoch::EpochManager;pub use gc::GcConfig;pub use gc::GcEstimate;pub use gc::GcState;pub use gc::GcStats;pub use metrics::MetricsCollector;pub use metrics::MetricsSnapshot;pub use rskv::RsKv;pub use rskv::RsKvStats;
Modules§
- background
- Background task management for rskv
- checkpoint
- Checkpoint and recovery implementation for rskv
- common
- Common types and error definitions for rskv
- epoch
- Epoch-based memory management for rskv
- gc
- Garbage collection implementation for rskv
- hlog
- Hybrid Log (HLog) implementation for rskv
- index
- Concurrent hash index implementation for rskv
- metrics
- Performance metrics collection for rskv
- rskv
- Main RsKv key-value store implementation