2 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017 年 9 月 22 日
0.0.1 2015 年 6 月 23 日

⚠️ 已报告问题

#2452数据库接口

MPL-2.0 许可证

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(我们呼吸的气体)中产生。

许可证

许可下

贡献

除非您明确声明,否则您提交给作品以供包含在内的任何贡献,根据 MPL-2.0 许可证的定义,将按上述方式许可,不附加任何额外条款或条件。

依赖项

~370–600KB