Skip to content

v0.1.2 - Idiomatic Builder Pattern & Memory Pinning

Choose a tag to compare

@botirkhaltaev botirkhaltaev released this 19 Oct 11:08
· 39 commits to master since this release

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();