For a caching library for Go applications, the strongest matches are hashicorp/golang-lru (This library provides a thread-safe, in-memory LRU cache with), dgraph-io/ristretto (Ristretto is a high-performance, thread-safe in-memory cache library for) and coocood/freecache (This library provides a high-performance, thread-safe, in-memory key-value store). golang/groupcache and patrickmn/go-cache round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “best go cache libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
This is a thread-safe in-memory cache library for Go that automatically evicts the least recently used items when capacity is reached. It provides a fixed-size memory cache designed to maintain a constant memory footprint by removing the oldest entries as new data arrives. The system includes an eviction manager that executes custom callbacks when entries are purged to facilitate resource cleanup. It also supports time-based expiration, allowing for the automatic removal of items after a specified time-to-live duration. The library covers general caching capabilities including cache inspecti
This library provides a thread-safe, in-memory LRU cache with TTL support that is specifically designed for Go applications, making it a direct fit for your caching requirements.
Ristretto is a high-performance in-memory cache and concurrent key-value store for Go applications. It provides a thread-safe memory store that manages strict memory bounds and employs probabilistic set filters to reduce lookup overhead. The system is distinguished by an admission-policy cache that utilizes frequency sketches and cost-based eviction to maximize hit ratios. It minimizes contention and improves throughput through the use of striped ring buffers and concurrent map sharding. The project covers a broad range of data management capabilities, including time-based expiration, item f
Ristretto is a high-performance, thread-safe in-memory cache library for Go that features advanced eviction policies, TTL expiration, and a design specifically optimized for high-throughput concurrent access.
freecache is a high-performance, concurrent in-memory key-value store library for Go applications. It functions as a fixed-size cache that manages large volumes of data while eliminating garbage collection overhead through the use of preallocated memory and off-heap storage. The system maintains a predictable memory footprint by utilizing fixed memory allocation and circular buffer management, where new entries automatically overwrite the oldest data upon reaching capacity. It further reduces contention between simultaneous readers and writers through lock-striped concurrent access. The libr
This library provides a high-performance, thread-safe, in-memory key-value store for Go that minimizes garbage collection overhead through off-heap storage and fixed-size memory management, making it a strong fit for application-level caching.
Groupcache is a distributed caching library designed to coordinate data retrieval and storage across a cluster of nodes. It functions as a peer-to-peer data store that uses consistent hashing to assign specific keys to canonical owners, ensuring that cached items remain predictable and accessible throughout the network. The system distinguishes itself through a request coalescing engine that merges concurrent requests for the same missing key into a single upstream fetch. This mechanism prevents redundant backend load by ensuring that only one process retrieves the required data while sharing
Groupcache is a distributed, peer-to-peer caching library for Go that excels at request coalescing and cluster-wide data coordination, making it a specialized choice for high-performance application-level caching.
go-cache is a thread-safe, in-memory cache library for Go that stores arbitrary objects with per-item expiration timestamps. It provides a concurrent key-value store where multiple goroutines can safely read and write shared cached data without external synchronization, using a mutex-guarded map for access control. The library distinguishes itself through its expiration management and optional disk persistence. Each cached item carries its own time-to-live, and a background goroutine periodically purges expired entries. The cache can serialize its entire contents to disk using Go's gob encodi
This is a thread-safe, in-memory key-value store for Go that supports TTL expiration, though it lacks modern features like generics and zero-allocation design.
Bigcache is a thread-safe, in-memory key-value store for Go designed to minimize garbage collection pauses. It functions as a memory-optimized cache capable of storing gigabytes of data while maintaining low latency during high-volume operations. The system avoids garbage collection overhead by managing memory through large byte arrays and manual allocation. It utilizes a circular-buffer layout to reuse space and lock-striped sharding to reduce contention during concurrent read and write access. The project provides capabilities for high-volume in-memory caching and low-latency data retrieva
Bigcache is a high-performance, in-memory caching library for Go that excels at minimizing garbage collection overhead through manual memory management and lock-striped sharding, making it a strong choice for application-level data storage.
Olric is a distributed data grid and in-memory key-value store that partitions and replicates data across a cluster of servers. It serves as a shared memory system for managing distributed maps, performing atomic operations, and acting as an in-memory data cache. The system provides a distributed locking mechanism for concurrency control and a pub-sub messaging system that broadcasts and routes messages over named channels across the cluster. The platform covers wide-ranging capabilities including cluster management and orchestration, data replication with configurable quorums, and automated
Olric is a distributed, in-memory key-value store and data grid that functions as a high-performance cache, though it is designed as a cluster-wide system rather than a simple local-memory library.
An in-memory cache library for golang. It supports multiple eviction policies: LRU, LFU, ARC
This library provides in-memory caching with support for multiple eviction policies like LRU, making it a suitable tool for application-level data storage in Go.
Concurrency-safe Go caching library with expiration capabilities and access counters
This library provides concurrency-safe, in-memory caching with TTL expiration and access tracking, making it a suitable tool for application-level data storage in Go.
An in-memory cache with item expiration and generics
This library provides a thread-safe, in-memory cache for Go that supports generics and TTL expiration, making it a direct fit for application-level data storage despite lacking built-in distributed caching features.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| hashicorp/golang-lru | 5.1K | Go | MPL-2.0 | |
| dgraph-io/ristretto | 6.9K | Go | Apache-2.0 | |
| coocood/freecache | 5.4K | Go | MIT | |
| golang/groupcache | 13.3K | Go | apache-2.0 | |
| patrickmn/go-cache | 8.8K | Go | MIT | |
| allegro/bigcache | 8.1K | Go | Apache-2.0 | |
| olric-data/olric | 3.5K | Go | Apache-2.0 | |
| bluele/gcache | 2.7K | Go | MIT | |
| muesli/cache2go | 2.2K | Go | NOASSERTION | |
| jellydator/ttlcache | 1.3K | Go | MIT |