Append only key-value blob storage on disk
Structure:
rust
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:
rust
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 | | -------------- | :----: | :----------- | |magicbyte | 8 | separates records in blob |key | (any) | key for record location and searching |metasize | 8 | meta length |datasize | 8 | data length (without header) |flags | 1 | additional record metadata |bloboffset | 8 | record offset from blob start |created | 8 | created timestamp |datachecksum | 4 | data crc32 checksum (without header) |headerchecksum | 4 | header crc32 checksum (only record header)
pearl
works on stable rust and above
$ rustup update
$ cargo build