Expand description
Memory-efficient buffer implementations.
This module provides buffer implementations optimized for different use cases:
RingBuffer: Efficient circular buffer for streaming dataMmapBuffer: Memory-mapped buffer for large data setsSplitBuffer: Buffer that spills to disk when threshold is exceeded
§Memory-Mapped Buffers
For very large terminal sessions (e.g., log processing, long-running scripts), memory-mapped buffers can reduce heap pressure by using virtual memory backed by temporary files.
ⓘ
use rust_expect::util::buffer::{MmapBuffer, BufferConfig};
// Create a 1GB memory-mapped buffer
let buffer = MmapBuffer::new(1024 * 1024 * 1024)?;
// Use like a regular buffer
buffer.write(b"Hello, world!")?;
let data = buffer.read_all();Structs§
- Atomic
Buffer Size - Thread-safe atomic buffer size tracker.
- Large
Buffer Config - Configuration for buffer behavior.
- Ring
Buffer - A circular ring buffer for streaming data.
- Spill
Buffer - A buffer that can spill to disk for very large data sets.
Functions§
- allocate_
page_ aligned - Allocate a page-aligned buffer for zero-copy I/O.
- page_
size - Get the system page size.