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 Jun 15, 2016

#2758 in Database interfaces

MIT license

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.

Build Status Crates.io License

API Documentation


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
~99K SLoC