6 releases (breaking)
Uses old Rust 2015
0.7.1 | Nov 15, 2017 |
---|---|
0.7.0 | Jun 15, 2017 |
0.6.0 | Jun 7, 2017 |
0.5.0 | Jun 7, 2017 |
0.1.0 |
|
#3000 in Database interfaces
59KB
1.5K
SLoC
Cask
A fast key-value store written in Rust. The underlying storage system is a log-structured hash table which is inspired by bitcask.
WARNING: ⚠️ Please do not trust any valuable data to this yet. ⚠️
Installation
Use the crates.io repository, add this to your Cargo.toml along with the rest of your dependencies:
[dependencies]
cask = "0.7.0"
Then, use Cask
in your crate:
extern crate cask;
use cask::{Cask, CaskOptions};
Usage
The basic usage of the library is shown below:
let cask = CaskOptions::default()
.compaction_check_frequency(1200)
.sync(SyncStrategy::Interval(5000))
.max_file_size(1024 * 1024 * 1024)
.open("cask.db")?;
let key = "hello";
let value = "world";
cask.put(key, value)?;
cask.get(key)?;
cask.delete(key)?;
TODO
- Basic error handling
- Merge files during compaction
- Configurable compaction triggers and thresholds
- Documentation
- Tests
- Benchmark
- Handle database corruption
License
cask is licensed under the MIT license. See LICENSE
for
details.
Dependencies
~5MB
~103K SLoC