v0.8.0 Beta — stable
Pre-releaseSmarter Flushes, Platform Parity, and Performance Wins
This release marks a major leap forward in stability, cross-platform reliability, and raw performance. Flush behavior is smarter, visibility is guaranteed across OS boundaries, and internal operations have been benchmarked and optimized for modern workloads like HiveDB.
Major Changes
-
Smart Flush Logic
Flush operations now intelligently determine what needs to be persisted, reducing unnecessary I/O without sacrificing data safety.flush()andflush_range()honor platform-level durability semantics. -
Platform Parity: Flush Visibility
Full parity ensured across Linux, macOS, and Windows. After callingflush()orflush_range(), a fresh read-only mapping on all OSes will reflect the persisted data. This is explicitly tested and contractually guaranteed. -
Performance Enhancements
- Up to +122% throughput gains on large flush+update workloads.
- Faster region updates (
update_only,update_plus_flush, etc.). - Chunked iterators and resize ops now significantly faster.
- Flush thresholds improved (tunable for advanced use cases).
- Memory advice (
MADV_WILLNEED,MADV_SEQUENTIAL) now shows measurable wins.
New Tests & Benchmarks
-
✅
tests/platform_parity.rs: Verifies post-flush visibility across platforms. -
✅
tests/async_flush.rs: Confirms async and threshold flushing work as expected. -
✅ Full benchmark suite overhauled with
criterion.rs, capturing:- Region updates
- Full vs range flushes
- Read/write throughput
- Resize and COW performance
Fixes & Internals
- Flush thresholds now configurable and actually used during real workloads.
- Reduced dead_code warnings;
huge_pagesnow properly surfaced inDebug. - Clean fallbacks and recoveries from failed mappings.
- General code cleanup and traceability improvements for contributors.
⚠️ Notes
watch-based features now rely on explicit flushes for guaranteed change detection. If you're usingwatchin tests or production, be sure to call.flush()after writes, or manually force a flush in the watcher path.huge_pagessupport exists but is not yet wired to retain successful mappings (planned forv0.9.X).
Feedback Wanted
This is a Beta release — API surface is stable, but we're still tuning the guts for edge-case performance. If you're using this in serious workloads (like HiveDB, cache engines, or low-latency pipelines), drop issues or suggestions and we’ll make it better.
Built for devs who care about nanosecond precision, zero-overhead memory I/O, and full platform correctness.
Full Changelog: v0.7.5...v0.8.0