54 个版本
| 0.21.0 | 2023 年 12 月 18 日 |
|---|---|
| 0.20.0 | 2023 年 9 月 23 日 |
| 0.19.0 | 2023 年 5 月 16 日 |
| 0.18.0 | 2023 年 2 月 26 日 |
| 0.2.0 | 2019 年 11 月 28 日 |
247 在 文件系统
每月 256 次下载
410KB
10K SLoC
珍珠
磁盘上的只写键值 blob 存储
目录
概述
存储方案
blob
头部
结构
struct Header {
magic_byte: u64,
version: u32,
flags: u64,
}
描述
| 字段 | 大小,B | 描述 |
|---|---|---|
| magic_byte | 8 | 标记 pearl blob |
| version | 任何 | 用于检查兼容性 |
| flags | 1 | 额外的文件属性 |
记录
头部
结构
pub struct Header {
magic_byte: u64,
key: Vec<u8>,
meta_size: u64,
data_size: u64,
flags: u8,
blob_offset: u64,
created: u64,
data_checksum: u32,
header_checksum: u32,
}
描述
| 字段 | 大小,B | 描述 |
|---|---|---|
| magic_byte | 8 | 将记录分开在 blob 中 |
| key | (任何) | 记录位置和搜索的键 |
| meta_size | 8 | 元长度 |
| data_size | 8 | 数据长度(不包括头部) |
| flags | 1 | 额外的记录元数据 |
| blob_offset | 8 | 记录从 blob 开始的偏移量 |
| created | 8 | 创建时间戳 |
| data_checksum | 4 | 数据 crc32 校验和(不包括头部) |
| header_checksum | 4 | 头部 crc32 校验和(仅记录头部) |
Rust 版本
pearl 支持 stable rust 及以上版本
$ rustup update
$ cargo build
依赖
~6–17MB
~209K SLoC