7 releases

0.2.4 Apr 16, 2023
0.2.3 Apr 15, 2023
0.2.2 Jan 26, 2022
0.2.1 Oct 16, 2021
0.1.1 Oct 12, 2021

#656 in Filesystem

Download history 245/week @ 2024-10-07 149/week @ 2024-10-14 223/week @ 2024-10-21 164/week @ 2024-10-28 151/week @ 2024-11-04 359/week @ 2024-11-11 665/week @ 2024-11-18 58/week @ 2024-11-25 243/week @ 2024-12-02 114/week @ 2024-12-09 47/week @ 2024-12-16 39/week @ 2024-12-23 76/week @ 2024-12-30 115/week @ 2025-01-06 146/week @ 2025-01-13 83/week @ 2025-01-20

432 downloads per month
Used in verneuil

MIT license

210KB
3.5K SLoC

Kismet: a Second Chance cache for files on disk

Crates.io docs.rs Build Status Coverage Status

Kismet implements multiprocess lock-free crash-safe and (roughly) bounded persistent caches stored in filesystem directories, with a Second Chance eviction strategy. The maintenance logic is batched and invoked at periodic jittered intervals to make sure accesses amortise to a constant number of filesystem system calls and logarithmic (in the number of cached file) time complexity, without requiring any persistent in-memory statistics. That's good for application simplicity and performance, and enables lock-freedom, but does mean that caches are expected to temporarily grow past their capacity limits, although rarely by more than a factor of 2 or 3.

Dependencies

~3–12MB
~166K SLoC