Skip to main content

Module spool

Module spool 

Source
Available on crate feature spool only.
Expand description

Disk-backed async FIFO queue with optional zstd compression.

This module provides a persistent queue for spooling data to disk, useful for buffering data when downstream systems are unavailable or for implementing store-and-forward patterns.

Built on yaque, a fast, async, persistent queue with transactional semantics.

§Features

  • Persistent storage survives restarts
  • Transactional writes (crash-safe)
  • Optional zstd compression for reduced disk usage
  • Configurable size limits
  • Async-native API

§Example

use hyperi_rustlib::spool::{Spool, SpoolConfig};

let config = SpoolConfig {
    path: "/tmp/my-spool".into(),
    compress: true,
    ..Default::default()
};

let mut spool = Spool::open(config).await?;

// Add items to the queue
spool.push(b"first message").await?;
spool.push(b"second message").await?;

// Process items (FIFO order)
while let Some(data) = spool.pop_front().await? {
    println!("Processing: {:?}", data);
}

Structs§

Spool
A disk-backed async FIFO queue with optional compression.
SpoolConfig
Configuration for the disk-backed spool.

Enums§

SpoolError
Errors that can occur during spool operations.

Type Aliases§

Result
Result type for spool operations.