cask 0.7.0

A fast key-value store backed by a log-structured hash table
Documentation
# Cask

A fast key-value store written in Rust. The underlying storage system is a log-structured hash table
which is inspired by [bitcask](https://github.com/basho/bitcask/).

[![Build Status](https://travis-ci.org/andrebeat/cask.svg?branch=master)](https://travis-ci.org/andrebeat/cask)
[![Crates.io](https://img.shields.io/crates/v/cask.svg?maxage=2592000)](https://crates.io/crates/cask)
[![License](https://img.shields.io/dub/l/vibe-d.svg)](https://raw.githubusercontent.com/andrebeat/cask/master/LICENSE)

[API Documentation](http://andrebeat.github.io/cask/cask/struct.Cask.html)

* * *

**WARNING**: ⚠️ Please do not trust any valuable data to this yet. ⚠️

## Installation

Use the [crates.io](http://crates.io/) repository, add this to your Cargo.toml along with the rest
of your dependencies:

```toml
[dependencies]
cask = "0.7.0"
```

Then, use `Cask` in your crate:

```rust
extern crate cask;
use cask::{Cask, CaskOptions};
```

## Usage

The basic usage of the library is shown below:

```rust
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

- [X] Basic error handling
- [X] Merge files during compaction
- [X] Configurable compaction triggers and thresholds
- [X] Documentation
- [ ] Tests
- [ ] Benchmark
- [ ] Handle database corruption

## License

cask is licensed under the [MIT](http://opensource.org/licenses/MIT) license. See `LICENSE` for
details.