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