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文件系统

Download history 3/week @ 2024-03-10 10/week @ 2024-03-31

每月 256 次下载

MIT 和可能 GPL-3.0

410KB
10K SLoC

珍珠

build tests Crate Status Docs Status

磁盘上的只写键值 blob 存储

目录

概述

存储方案

pearl storage scheme

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