Crates.io | ozone |
lib.rs | ozone |
version | 0.1.0 |
source | src |
created_at | 2015-06-23 04:35:25.166545 |
updated_at | 2017-09-22 12:01:43.475434 |
description | Pure-rust key/value store based on BoltDB |
homepage | https://github.com/bqv/ozone |
repository | https://github.com/bqv/ozone |
max_upload_size | |
id | 2452 |
size | 108,366 |
Ozone is a pure-rust key/value store inspired by the language's built-in concept of memory ownership.
The goal of this project is to build a perfectly idiomatic persistence layer initially using the standard library's collections::HashMap as a model, letting the language itself do as much as possible.
Specific features that will be implemented include:
single-file databases
copy-on-write, lock-free MVCC
recycling of emptied pages
The API will be identical to that provided by collections::HashMap, including an Entry API:
pub struct HashMap<K, V, B = AnonymousBuffer> {
fn entry(&mut self, key: K) -> Entry<K, V>;
fn len(&self) -> usize;
fn is_empty(&self) -> bool;
fn get(&self, k: &K) -> Option<&V>;
fn contains_key(&self, k: &K) -> bool;
fn get_mut(&mut self, k: &K) -> Option<&mut V>;
fn insert(&mut self, k: K, v: V) -> Option<V>;
fn remove(&mut self, k: &K) -> Option<V>;
}
Ozone, or O3 is a powerful oxidant (oxidation/reduction is the chemical process of rusting) that is naturally created from O2 (the stuff we breathe) when a bolt of lightning strikes.
Licensed under
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the MPL-2.0 license, shall be licensed as above, without any additional terms or conditions.