| Crates.io | leveldb |
| lib.rs | leveldb |
| version | 0.8.6 |
| created_at | 2014-11-20 19:41:26.588452+00 |
| updated_at | 2020-09-20 16:27:32.894103+00 |
| description | An interface for leveldb |
| homepage | https://github.com/skade/leveldb |
| repository | https://github.com/skade/leveldb |
| max_upload_size | |
| id | 127 |
| size | 67,125 |
Almost-complete bindings for leveldb for Rust.
leveldb is built and tested on stable releases of Rust. This are currently 1.31.0 and 1.43.1. Nightlies
might not build at any point and failures are allowed. There are no known issues with nightlies, though.
snappy and leveldb need to be installed. On Ubuntu, I recommend:
sudo apt-get install libleveldb-dev libsnappy-dev
If your project is using Cargo, drop the following lines in your Cargo.toml:
[dependencies]
leveldb = "0.8"
Make sure you have all prerequisites installed. Run
$ cargo build
for building and
$ cargo test
to run the test suite.
extern crate tempdir;
extern crate leveldb;
use tempdir::TempDir;
use leveldb::database::Database;
use leveldb::iterator::Iterable;
use leveldb::kv::KV;
use leveldb::options::{Options,WriteOptions,ReadOptions};
fn main() {
let tempdir = TempDir::new("demo").unwrap();
let path = tempdir.path();
let mut options = Options::new();
options.create_if_missing = true;
let mut database = match Database::open(path, options) {
Ok(db) => { db },
Err(e) => { panic!("failed to open database: {:?}", e) }
};
let write_opts = WriteOptions::new();
match database.put(write_opts, 1, &[1]) {
Ok(_) => { () },
Err(e) => { panic!("failed to write to database: {:?}", e) }
};
let read_opts = ReadOptions::new();
let res = database.get(read_opts, 1);
match res {
Ok(data) => {
assert!(data.is_some());
assert_eq!(data, Some(vec![1]));
}
Err(e) => { panic!("failed reading data: {:?}", e) }
}
let read_opts = ReadOptions::new();
let mut iter = database.iter(read_opts);
let entry = iter.next();
assert_eq!(
entry,
Some((1, vec![1]))
);
}
MIT, see LICENSE