2 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2017 年 9 月 22 日 |
---|---|
0.0.1 | 2015 年 6 月 23 日 |
#2452 在 数据库接口
92KB
2.5K SLoC
ozone
Ozone 是一个纯 Rust 键值存储,灵感来源于语言的内置内存所有权概念。
目标
该项目目标是构建一个完美的符合 Rust 语言的持久层,最初使用标准库中的 collections::HashMap 作为模型,让语言本身尽可能多地完成工作。
将实现的具体特性包括
- 单文件数据库
- 写时复制、无锁 MVCC
- 回收空页面
建议的 API
API 将与 collections::HashMap 提供的 API 相同,包括 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?
臭氧(O3)是一种强氧化剂(氧化还原是生锈的化学过程),当闪电击中时,它自然地从 O2(我们呼吸的气体)中产生。
许可证
许可下
- Mozilla Public License 2.0(《LICENSE》或http://www.mozilla.org/en-US/MPL/2.0/》)
贡献
除非您明确声明,否则您提交给作品以供包含在内的任何贡献,根据 MPL-2.0 许可证的定义,将按上述方式许可,不附加任何额外条款或条件。
依赖项
~370–600KB