This repository is a monorepo for the Cacheable ecosystem, providing a comprehensive suite of caching libraries for Node.js. It includes packages for in-memory caching (CacheableMemory, NodeCache), file-based caching (FlatCache, FileEntryCache), HTTP request caching (CacheableRequest, CacheableNet), and a multi-tier cache manager (cache-manager) used by NestJS. The core Cacheable class implements layered (L1/L2) caching with support for TTL, events, hooks, tag-based invalidation, non-blocking writes, and distributed synchronization via Qified/Redis. The architecture is modular, with each package designed to be used independently or composed together. The codebase is written in TypeScript with extensive test coverage (vitest), dual CJS/ESM builds, and uses modern tooling (biome, pnpm). It emphasizes production-readiness with features like stampede protection (coalesceAsync), per-store TTLs, and statistics tracking. The repository also includes a benchmark package comparing various caching implementations and a documentation website. While the API surface is large, the code demonstrates solid engineering practices and provides genuinely reusable components that solve recurring caching problems.
BigCache is a high-performance, concurrent, evicting in-memory cache library for Go, designed to store large numbers of entries without impacting garbage collection. It achieves this by storing entries in byte slices and using a `map[uint64]uint64` (hash to index) that contains no pointers, thus avoiding GC scanning. The cache is sharded for concurrency, supports TTL-based eviction, a configurable cleanup goroutine, and optional hard memory limits. It provides a simple key-value API (Set, Get, Delete, Append) along with iteration, statistics, and per-key metadata. The repository also includes an optional standalone HTTP server that exposes a RESTful API for cache operations, making it suitable for deployment as a caching microservice. The codebase is well-tested with unit tests, benchmarks, and fuzz testing, and follows modern Go practices.