rusty_leveldb_arc/
lib.rs

1//! rusty-leveldb is a reimplementation of LevelDB in pure rust. It depends only on a few crates,
2//! and is very close to the original, implementation-wise. The external API is relatively small
3//! and should be easy to use.
4//!
5//! ```
6//! use rusty_leveldb_arc::{DB, DBIterator, LdbIterator, Options};
7//!
8//! let opt = rusty_leveldb_arc::in_memory();
9//! let mut db = DB::open("mydatabase", opt).unwrap();
10//!
11//! db.put(b"Hello", b"World").unwrap();
12//! assert_eq!(b"World", db.get(b"Hello").unwrap().as_slice());
13//!
14//! let mut iter = db.new_iter().unwrap();
15//! // Note: For efficiency reasons, it's recommended to use advance() and current() instead of
16//! // next() when iterating over many elements.
17//! assert_eq!((b"Hello".to_vec(), b"World".to_vec()), iter.next().unwrap());
18//!
19//! db.delete(b"Hello").unwrap();
20//! db.flush().unwrap();
21//! ```
22//!
23
24#![allow(dead_code)]
25
26extern crate crc;
27extern crate errno;
28extern crate fs2;
29extern crate integer_encoding;
30extern crate rand;
31extern crate snap;
32
33#[cfg(test)]
34#[macro_use]
35extern crate time_test;
36
37#[macro_use]
38mod infolog;
39
40#[cfg(feature = "async")]
41mod asyncdb;
42
43mod block;
44mod block_builder;
45mod blockhandle;
46mod cache;
47mod cmp;
48mod disk_env;
49mod env;
50mod env_common;
51mod error;
52mod filter;
53mod filter_block;
54mod key_types;
55mod log;
56mod mem_env;
57mod memtable;
58mod merging_iter;
59mod options;
60mod skipmap;
61mod snapshot;
62mod table_block;
63mod table_builder;
64mod table_cache;
65mod table_reader;
66mod test_util;
67mod types;
68mod version;
69mod version_edit;
70mod version_set;
71mod write_batch;
72
73mod db_impl;
74mod db_iter;
75
76pub mod compressor;
77
78#[cfg(feature = "async")]
79pub use asyncdb::AsyncDB;
80
81pub use cmp::{Cmp, DefaultCmp};
82pub use compressor::{Compressor, CompressorId};
83pub use db_impl::DB;
84pub use db_iter::DBIterator;
85pub use disk_env::PosixDiskEnv;
86pub use env::Env;
87pub use error::{Result, Status, StatusCode};
88pub use filter::{BloomPolicy, FilterPolicy};
89pub use mem_env::MemEnv;
90pub use options::{in_memory, CompressorList, Options};
91pub use skipmap::SkipMap;
92pub use types::LdbIterator;
93pub use write_batch::WriteBatch;