Skip to main content

Crate segment_buffer

Crate segment_buffer 

Source
Expand description

Durable bounded queue backed by zstd-compressed CBOR segment files.

Items are accumulated in memory, flushed as zstd-compressed CBOR batches to seg_{start:012}_{end:012}.zst files, and deleted once the consumer acknowledges receipt via SegmentBuffer::delete_acked.

The buffer is generic over any T: Serialize + DeserializeOwned + Clone + Send + 'static. Crash recovery is filename-based: scanning the directory rebuilds head_seq and next_seq without any WAL or metadata database.

§Example

use segment_buffer::{SegmentBuffer, SegmentConfig};
use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize, Clone)]
struct MyItem { id: u64 }

let buffer = SegmentBuffer::<MyItem>::open("/tmp/my-queue", SegmentConfig::default())?;
let seq = buffer.append(MyItem { id: 1 })?;
let items = buffer.read_from(0, 100)?;

Structs§

SegmentBuffer
Durable bounded queue of T backed by compressed segment files.
SegmentConfig
Configuration knobs for SegmentBuffer.

Enums§

SegmentError
Errors produced by segment-buffer operations.

Traits§

SegmentCipher
Encrypts and decrypts segment file payloads.

Type Aliases§

Result
Result alias used throughout the crate.