All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- BREAKING:
BufferPool::get()now returnsPooledBufferinstead ofVec<u8>PooledBufferimplementsDeref<Target = Vec<u8>>for transparent access- Buffers automatically return to pool when dropped (RAII pattern)
- No more manual
pool.put()calls needed
- BREAKING:
BufferPool::put()is now internal-only (pub(crate))- Users should rely on automatic return via
Drop - For explicit early return, use
drop(buffer)
- Users should rely on automatic return via
- New
PooledBuffertype providing automatic buffer return via Drop trait PooledBufferimplements:Deref<Target = Vec<u8>>andDerefMutfor transparent Vec API accessAsRef<[u8]>andAsMut<[u8]>for slice conversionsDebugwith buffer length and capacitySendandSyncfor thread safety
- Configurable eviction policies (LIFO, ClockPro) for fine-tuned performance
- Profiling binaries for performance analysis:
ml_checkpoint_loader: ML model loading simulationnetwork_server: Multi-threaded network server simulationfile_pipeline: File processing pipeline simulationstress_test: High-stress workload testing
- Modularized codebase with separate modules for buffer, config, pool, and utilities
- Removed all unsafe code blocks for improved safety
- Fixed all clippy warnings and formatting issues
- Improved code organization and documentation
let buf = pool.get(1024);
// use buf
pool.put(buf); // Manual returnlet buf = pool.get(1024);
// use buf
// Auto-returns on drop!
// For explicit early return:
drop(buf);See git history for earlier changes.