pcache

Homepage: https://github.com/sigma/pcache

Author: Yann Hodique

Updated:

Summary

Persistent caching for Emacs

Commentary

pcache provides a persistent way of caching data, in a hashtable-like
structure. It relies on `eieio-persistent' in the backend, so that any
object that can be serialized by EIEIO can be stored with pcache.

pcache handles objects called "repositories" (`pcache-repository') and
"entries" (`pcache-entry'). Each repository is identified by a unique name,
that defines an entry in `pcache-directory'. Subdirectories are allowed, by
the use of a directory separator in the repository name.

Example:
(let ((repo (pcache-repository "plop")))
  (pcache-put repo 'foo 42) ; store value 42 with key 'foo
  (pcache-get repo 'foo) ; => 42
)

Keys can be pretty much any Lisp object, and are compared for equality using
`eql'

Optionally, cache entries can expire:
(let ((repo (pcache-repository "plop")))
  (pcache-put repo 'foo 42 1) ; store value 42 with key 'foo for 1 second
  (sleep-for 1)
  (pcache-get repo 'foo) ; => nil
)

Dependencies

Reverse dependencies