It's in Rust, and it was written to speed up larger Rust project CI, on a self-hosted github action runner (where the target directories can be persisted across builds).
If it's unclear from the README: it will take care of all the details (allocate, lock, unlock, garbage collect) of handling directories ("values" in the cache), by deriving each directory name ("key") from some files/strings (e.g. Cargo.lock or package.lock).
In my use-case: we give up perfect isolation of CI jobs (starting from scratch every time), and instead store and re-use build artifacts. Huge performance gains (most CI runs are now tiny incremental builds) for some extra storage and a small concession.