[ANN] Caching.jl, yet another memoizer with more features


Caching.jl aims to provide a simple non-intrusive memoization mechanism with disk, compression, record and size limits support. While it’s not the fastest, it should pretty easy to use, understand and extend. It is still lacking in the documentation area however the examples provided in the package page cover most of the functionality.

Just for the record, a list of memoization packages I encountered so far in the Julia ecosystem (lots of good ideas in all for whomever is interested):


When your cache is full, how do you decide which entry to throw out?

Do you throw out
(1) Random entry
(2) Least Recently Used entry
(3) Oldest (by creation timestamp) entry


(3) but not by timestamp, simply by call order; the history is preserved in a Deque. It the cache is full, the deque’s head is popped :wink: (/src/cache.jl, line 131)