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.
- Spool
Config - Configuration for the disk-backed spool.
Enums§
- Spool
Error - Errors that can occur during spool operations.
Type Aliases§
- Result
- Result type for spool operations.