This release replaces the LRU cache with a custom S3-FIFO implementation, removing the lru dependency and improving cache eviction performance with O(1) lookups.
Improvements
- Replace LRU cache strategy with S3-FIFO algorithm based on "FIFO queues are all you need for cache eviction" (Yang et al., 2023)
- Remove
lrucrate dependency in favor of ~250 lines of pure, safe Rust - Use O(1) HashMap lookup in
pop()instead of O(n) VecDeque scan
Bug Fixes
- Fix infinite loop when cache capacity is 1 by routing all insertions directly to the main queue
- Fix CI issues with feature flags and
#[must_use]warnings on cache operations
Internal
- Add
#[must_use]attribute tolen(),capacity(), andis_empty()query methods - Add comprehensive edge case tests for capacity=1, capacity=2, clear/reinsert, tombstone handling, and ghost promotion
- Remove unnecessary
#[allow(unused)]attribute from s3fifo module
Full Changelog: https://github.com/AndreyAkinshin/zesven/compare/v1.0.0...v1.0.1