Module buffer

Module buffer 

Source
Expand description

Memory-efficient buffer implementations.

This module provides buffer implementations optimized for different use cases:

  • RingBuffer: Efficient circular buffer for streaming data
  • MmapBuffer: Memory-mapped buffer for large data sets
  • SplitBuffer: 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§

AtomicBufferSize
Thread-safe atomic buffer size tracker.
LargeBufferConfig
Configuration for buffer behavior.
RingBuffer
A circular ring buffer for streaming data.
SpillBuffer
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.