#键值存储 #持久化 #数据库 #嵌入式

caves

Rust 中嵌入式、线程安全键值存储的集合

3 个不稳定版本

0.2.1 2021 年 4 月 15 日
0.2.0 2021 年 4 月 13 日
0.1.0 2020 年 3 月 4 日

#143数据库实现

每月 下载 22
用于 2 crates

MPL-2.0 许可证

22KB
303 代码行

Caves

Rust 中嵌入式、线程安全键值存储(kvs)的集合。

CI Crates.io Docs.rs

概述

caves 包提供了一系列具有以下功能的键值存储:

  • 嵌入式
  • 线程安全
  • 简单的 API;获取/设置/删除键
  • 开发者友好

您可以在 https://docs.rs/caves 上找到更多关于此包背后的动机的信息。

使用方法

use caves::errors::Error;
use caves::{MemoryCave, Cave};

// Initialize a MemoryCave object.
let b = MemoryCave::new();

// Create a new key with an empty value.
b.set("key", b"");

// Override the key's value.
b.set("key", b"value");

// Retrieve the contents of the key.
let res = b.get("key");
assert_eq!(res.unwrap(), b"value");

// Delete the key.
b.delete("key");

// Subsequent attempts to retrieve the contents of the key should return an
// error.
let res = b.get("key");
assert_eq!(res, Err(Error::NotFound("key".to_string())));

上面的示例使用内存后端,但也支持文件系统和 RocksDB 后端。可以通过在 Cargo.toml 中为 caves 依赖项传递 with-rocksdb 功能标志来启用后者。

文档

您可以在 https://docs.rs/caves 上阅读最新文档。

贡献

您可以在 CONTRIBUTING.md 指南中找到有关如何为此项目做出贡献的更多信息。

根据 MPL-2.0 许可。请阅读 NOTICE.mdLICENSE 文件以获取完整的版权和许可信息。

依赖

~2–15MB
~202K SLoC