Introducing PaperCache, an in-memory cache that can switch its eviction policy dynamically (papercache.io)
from papercache@programming.dev to rust@programming.dev on 07 Aug 22:41
https://programming.dev/post/35278281

Hi everyone, I recently created an in-memory cache in Rust called PaperCache. It’s the first in-memory cache that’s able to switch between any eviction policy at runtime, allowing it to reduce its miss ratio by adapting to changing workloads. Currently, it supports the following eviction policies:

It typically has lower tail latencies than Redis (though with the trade-off of higher memory overhead as it needs to maintain extra metadata to be able to switch between policies at runtime).

Feel free to check out the website (papercache.io) which has documentation, a high-level article I wrote on Kudos (link.growkudos.com/1f039cqaqrk), or the paper from HotStorage’25 (dl.acm.org/doi/abs/10.1145/3736548.3737836)

Here’s a direct link to the cache internals: github.com/PaperCache/paper-cache

In case you want to test it out, you can find installation instructions here: papercache.io/guide/getting-started/installation

There are clients for most of the popular programming languages (papercache.io/guide/usage/clients), though some may be a little unpolished (I mainly use the Rust client for my own work, so that one is kept up-to-date).

If you have any feedback, please let me know!

#rust

threaded - newest

unlawfulbooger@lemmy.blahaj.zone on 07 Aug 22:46 next collapse

AGPL 😎

Edit: this looks pretty slick, I’ll keep it in mind next time I need a cache

papercache@programming.dev on 07 Aug 22:50 collapse

Thanks, would appreciate any feedback if you end up using it!

Lyra_Lycan@lemmy.blahaj.zone on 08 Aug 00:39 next collapse

When the market doesn’t have exactly what you need, the most powerful thing you can do is build your own version.

<img alt="" src="https://lemmy.blahaj.zone/pictrs/image/7c25d7a6-7137-4eb6-8d3d-5b9fb3a1f10b.webp">

SubArcticTundra@lemmy.ml on 08 Aug 03:52 collapse

ELI5? 🙏