Expand description
rusty-leveldb is a reimplementation of LevelDB in pure rust. It depends only on a few crates, and is very close to the original, implementation-wise. The external API is relatively small and should be easy to use.
use rusty_leveldb::{DB, DBIterator, LdbIterator, Options};
let opt = rusty_leveldb::in_memory();
let mut db = DB::open("mydatabase", opt).unwrap();
db.put(b"Hello", b"World").unwrap();
assert_eq!(b"World", db.get(b"Hello").unwrap().as_slice());
let mut iter = db.new_iter().unwrap();
// Note: For efficiency reasons, it's recommended to use advance() and current() instead of
// next() when iterating over many elements.
assert_eq!((b"Hello".to_vec(), b"World".to_vec()), iter.next().unwrap());
db.delete(b"Hello").unwrap();
db.flush().unwrap();
Re-exports§
pub use compressor::Compressor;
pub use compressor::CompressorId;
Modules§
- An
env
is an abstraction layer that allows the database to run both on different platforms as well as persisting data on disk or in memory.
Macros§
Structs§
- A filter policy using a bloom filter internally.
- Customize compressor method for leveldb
- DB contains the actual database implemenation. As opposed to the original, this implementation is not concurrent (yet).
- DBIterator is an iterator over the contents of a database.
- The default byte-wise comparator.
- MemEnv is an in-memory environment that can be used for testing or ephemeral databases. The performance will be better than what a disk environment delivers.
- Options contains general parameters for a LevelDB instance. Most of the names are self-explanatory; the defaults are defined in the
Default
implementation. - Status encapsulates a
StatusCode
and an error message. It can be displayed, and also implementsError
. - A WriteBatch contains entries to be written to a MemTable (for example) in a compact form.
Enums§
- StatusCode describes various failure modes of database operations.
Traits§
- Comparator trait, supporting types that can be nested (i.e., add additional functionality on top of an inner comparator)
- Encapsulates a filter algorithm allowing to search for keys more efficiently. Usually, policies are used as a BoxedFilterPolicy (see below), so they can be easily cloned and nested.
- An extension of the standard
Iterator
trait that supports some methods necessary for LevelDB. This works because the iterators used are stateful and keep the last returned element.
Functions§
- Returns Options that will cause a database to exist purely in-memory instead of being stored on disk. This is useful for testing or ephemeral databases.
Type Aliases§
- LevelDB’s result type