A sync disk cache. inspired by jgable/cache-swap
An async sibling version is also available: stefanpenner/async-disk-cache
By default, this will usge
TMPDIR/<username>/ for storage, but this can be changed by setting the
$TMPDIR environment variable.
All stored values become strings.
var Cache = ;var cache = 'my-cache';// 'my-cache' also serves as the global key for the cache.// if you have multiple programs with this same `cache-key` they will share the// same backing store. This by design.// checkingcache === wasFooFound;// retrieving (cache hit)cache ===isCached: truepath: 'foo'content: 'content of foo'// retrieving (cache miss)cache ===isCached: falsepath: 'foo'content: undefined// retrieving (cache miss)cache; // was set// remove a keycache;// clearing the cachecacheclear; // cache was cleared
note: node 0.10.x does not support the synchronous zlib method variants, so compression is only available > 0.10.x
var Cache = ;var cache = 'my-cache'compression: 'gzip' | 'deflate' | 'deflateRaw' // basically just what nodes zlib's ships with
HELP!...my TMP dir is growing unbounded!
In general most OS distributions come with cron like tasks, which purge unused files in
$TMPDIR. For example, ubuntu typically uses
tmpreaper and macOS uses various tasks in
If your OS distribution does not provide such a cleanup mechanism:
a) We stronglly recommend utilizing one, as other sync-disk-cache is not alone in rely on this behavior
b) If that is not possible, we recommend changing your
$TMPDIR to something project specific and manually purging it.
Licensed under the MIT License, Copyright 2015 Stefan Penner