pearl

Crates.iopearl
lib.rspearl
version0.21.0
sourcesrc
created_at2019-11-20 17:23:15.019959
updated_at2023-12-18 23:17:04.269419
descriptionPearl is a low level blob-based I/O library
homepagehttps://github.com/qoollo/pearl
repositoryhttps://github.com/qoollo/pearl
max_upload_size
id183031
size791,463
Bob-team (github:qoollo:bob-team)

documentation

https://docs.rs/pearl

README

Pearl

build tests Crate Status Docs Status

Append only key-value blob storage on disk

Table of Contents

Overview

Storage scheme

pearl storage scheme

Blob

Header

Structure:

struct Header {
    magic_byte: u64,
    version: u32,
    flags: u64,
}

Description

Field Size, B Description
magic_byte 8 marks pearl blob
version any used to check compatibility
flags 1 additional file props

Record

Header

Structure:

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,
}

Description

Field Size, B Description
magic_byte 8 separates records in blob
key (any) key for record location and searching
meta_size 8 meta length
data_size 8 data length (without header)
flags 1 additional record metadata
blob_offset 8 record offset from blob start
created 8 created timestamp
data_checksum 4 data crc32 checksum (without header)
header_checksum 4 header crc32 checksum (only record header)

Rust Version

pearl works on stable rust and above

$ rustup update
$ cargo build
Commit count: 503

cargo fmt