@cache-kit/cache
v0.1.1
Published
Framework-agnostic cache orchestration core: tag/dependency invalidation, multi-level composition, stampede protection, and the provider SPI that backend packages (@cache-kit/cache-memory, @cache-kit/cache-redis, ...) implement.
Readme
@cache-kit/cache
Framework-agnostic cache orchestration: tag/dependency invalidation,
multi-level composition, stampede protection, a CacheManager for running
several named backends at once, and the CacheProvider contract that
backend packages implement.
This package has zero runtime dependencies on any specific cache backend. Install a provider package alongside it:
npm install @cache-kit/cache @cache-kit/cache-memory
# and/or
npm install @cache-kit/cache @cache-kit/cache-redisQuick start
import { Cache } from '@cache-kit/cache';
import { MemoryProvider } from '@cache-kit/cache-memory';
const cache = new Cache({
provider: new MemoryProvider({ type: 'memory', maxSize: 10_000 }),
defaultTtl: 60_000,
});
await cache.set('product:15', product, { tags: ['product', 'shop:2'] });
const value = await cache.get('product:15');
await cache.invalidateTag('shop:2');What's in this package
Cache— get/set/has/delete/clear,getMany/setMany/deleteMany,invalidateTag(s)/invalidateNamespace/invalidate(dependency-aware),wrap/remember(cache-aside with stale-while-revalidate, stale-if-error, dedup, and lock-based stampede protection),search,buildKey, events.CacheManager— a registry of namedCacheinstances, each bound to its own provider, for running multiple backends at once.MultiLevelProvider— tiered fallback across providers (e.g. in-memory L1 in front of a shared Redis L2).NoopProvider— a provider that does nothing; useful for disabling caching without touching call sites.withCompression/withEncryption— generic provider decorators (gzip / AES-256-GCM at rest), backend-agnostic.createMetricsPlugin/createTracingPlugin— event-listener plugins for wiring cache hits/misses/invalidations into your observability stack.buildKey/parseKey— deterministic cache-key generation from filter/ query objects (re-exported from the standalone@cache-kit/cache-key; also available ascache.buildKey(...)).
Full API reference with runnable examples for every feature: see
docs/examples.md in the repository. Architecture and the provider-package
pattern: see docs/architecture.md.
License
MIT
