Repository navigation
v0.1.2 - Idiomatic Builder Pattern & Memory Pinning
What's New
Idiomatic Rust Builder Pattern
- Added BufferPool::builder following tokio/rayon style
- Removed non-idiomatic preset methods
- Made PoolConfig private (internal implementation)
Memory Pinning Support
- Added pinned_memory builder method
- Always available (no feature flags needed)
- Pre-allocates and pins buffers for optimal performance
- Graceful fallback if pinning fails
Improved Test Coverage
- 12 comprehensive tests (was 5)
- New tests: builder API, pinned memory, concurrent access, edge cases
- All tests passing, clippy clean
Rust Best Practices
- const fn for builder methods
- Proper must_use annotations
- Modern format strings
- Optimized allocations
API Changes
New:
- BufferPool::builder
- Builder::min_buffer_size
- Builder::num_shards
- Builder::tls_cache_size
- Builder::max_buffers_per_shard
- Builder::pinned_memory
Removed:
- PoolConfig public API (now private)
- PoolConfig preset methods
Migration Guide
Before:
let pool = BufferPool::with_config(PoolConfig::default().with_min_buffer_size(512 * 1024));
After:
let pool = BufferPool::builder().min_buffer_size(512 * 1024).build();