Repository navigation
v0.4.0 — builder, FlushPolicy, RecoveryReport, for_each_from, typed Io, examples, ops
The "API ergonomic + perf" release. Completes the 35-task v0.3.0 plan.
Breaking
SegmentConfiglostmax_batch_eventsandflush_interval, gainedflush_policy: FlushPolicy. Migration via builder.SegmentError::Iois now a struct variant{ path: Option<PathBuf>, source: io::Error }.
Added
SegmentConfig::builder()with fluent settersFlushPolicyenum (Batch / Interval / BatchOrInterval / Manual)RecoveryReport+open_with_report()for_each_from(start, limit, F)lending iterator (~21× faster thanread_fromon in-memory items)- Typed
SegmentError::Io { path, source }withwith_path()helper examples/crash_recovery.rs,examples/mpmc.rs.github/workflows/nix.yml,deny.toml,renovate.json,release.toml
Changed (internal)
approx_disk_bytesisAtomicU64outsideBufferInner; flush/store_pressure drop the second lockscan_segments()results cached; invalidated by mutating ops- Tracing fields standardized on path/seq/bytes
Verified
49 unit + 25 doc tests pass. fmt/clippy/doc clean. cargo-deny ok across advisories/licenses/bans/sources. MSRV 1.85 verified locally. Both fuzz targets pass. Two new examples (crash_recovery, mpmc) run cleanly.
See CHANGELOG for the full change history.