Crates.io | pearl |
lib.rs | pearl |
version | 0.21.0 |
source | src |
created_at | 2019-11-20 17:23:15.019959 |
updated_at | 2023-12-18 23:17:04.269419 |
description | Pearl is a low level blob-based I/O library |
homepage | https://github.com/qoollo/pearl |
repository | https://github.com/qoollo/pearl |
max_upload_size | |
id | 183031 |
size | 791,463 |
Append only key-value blob storage on disk
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 |
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) |
pearl
works on stable rust and above
$ rustup update
$ cargo build