cask

Crates.iocask
lib.rscask
version0.7.1
sourcesrc
created_at2016-06-15 00:03:09.093691
updated_at2017-11-15 16:06:48.920591
descriptionA fast key-value store backed by a log-structured hash table
homepage
repositoryhttps://github.com/andresilva/cask
max_upload_size
id5382
size63,726
developers (github:devolutions:developers:crates-io)

documentation

README

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.

Commit count: 142

cargo fmt