awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
coocood avatar

coocood/freecache

0
View on GitHub↗
5,399 stars·406 forks·Go·MIT·31 views

Freecache

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 library includes a server interface that implements a subset of the Redis protocol, allowing external clients to communicate with the cache using standard commands and pipelining. Data lifecycle is managed via time-to-live expiration and automated eviction policies.

Features

  • Go In-Memory Caches - Provides a high-performance in-memory key-value store for Go applications designed to eliminate garbage collection pauses.
  • Cache Eviction Policies - Utilizes cache eviction policies based on expiration timestamps and LRU algorithms to maintain memory limits.
  • Concurrent Caches - Provides a thread-safe concurrent cache designed for high-concurrency environments with simultaneous reader and writer access.
  • Least Recently Used Caches - Implements a fixed-size cache that discards the oldest or least-recently-used entries when capacity limits are reached.
  • Circular Memory Buffers - Utilizes a circular memory buffer to automatically overwrite the oldest data when the fixed cache capacity is reached.
  • Off-Heap Memory Managers - Allocates data outside the managed heap to eliminate garbage collection overhead and prevent runtime pauses.
  • Slab Allocators - Uses slab allocators with fixed-size chunks to minimize memory fragmentation and ensure a predictable footprint.
  • Fixed Memory Buffers - Constrains memory usage to a preallocated fixed size to prevent application crashes and manage data via eviction.
  • Memory-Limited Caches - Implements memory-limited caching by capping the total byte size through strictly limited preallocated memory.
  • Lock-Striped Sharding - Employs lock-striped sharding to divide the data set and reduce contention among simultaneous readers and writers.
  • Concurrent Data Structures - Provides concurrent data structures that ensure thread-safe operations during simultaneous read and write access.
  • TTL Expiration Management - Provides TTL expiration management to automatically remove stale cache entries based on timestamps.
  • Redis Client Interfaces - Implements a Redis-compatible interface allowing external clients to communicate using standard Redis commands and pipelining.
  • Redis Protocol Parsers - Integrates a Redis protocol parser to allow external clients to communicate via standard Redis commands.
  • Protocol Servers - Implements a server interface that supports a subset of Redis commands and pipelining for external communication.
  • Time-To-Live Expirations - Implements time-to-live expirations to automatically remove stale cache entries and keep data current.
  • Caching Libraries - Zero-GC cache library.

Star history

Star history chart for coocood/freecacheStar history chart for coocood/freecache

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Freecache

These projects share indexed features with Freecache. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • dgraph-io/ristrettodgraph-io avatar

    dgraph-io/ristretto

    6,932View on GitHub↗

    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

    Go
    View on GitHub↗6,932
  • isaacs/node-lru-cacheisaacs avatar

    isaacs/node-lru-cache

    5,895View on GitHub↗

    node-lru-cache is a key-value store for Node.js that implements a memory-limited cache. It prevents memory exhaustion by capping the total number of items or total byte size, automatically evicting the least-recently-used items to maintain these limits. The project provides specialized caching patterns, including time-to-live durations to ensure data freshness and a stale-while-revalidate mechanism that serves expired content while asynchronously fetching updates in the background. It also includes diagnostic tools for monitoring cache hits, misses, and eviction metrics through operational st

    JavaScript
    View on GitHub↗5,895
  • hashicorp/golang-lruhashicorp avatar

    hashicorp/golang-lru

    5,091View on GitHub↗

    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

    Go
    View on GitHub↗5,091
  • patrickmn/go-cachepatrickmn avatar

    patrickmn/go-cache

    8,828View on GitHub↗

    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

    Gocachegolibrary
    View on GitHub↗8,828
Compare all 30 related projects→

Frequently asked questions

What does coocood/freecache do?

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.

What are the main features of coocood/freecache?

The main features of coocood/freecache are: Go In-Memory Caches, Cache Eviction Policies, Concurrent Caches, Least Recently Used Caches, Circular Memory Buffers, Off-Heap Memory Managers, Slab Allocators, Fixed Memory Buffers.

Which projects share features with coocood/freecache?

Projects with overlapping indexed features include: dgraph-io/ristretto — Ristretto is a high-performance in-memory cache and concurrent key-value store for Go applications. It provides a… isaacs/node-lru-cache — node-lru-cache is a key-value store for Node.js that implements a memory-limited cache. It prevents memory exhaustion… hashicorp/golang-lru — This is a thread-safe in-memory cache library for Go that automatically evicts the least recently used items when… patrickmn/go-cache — go-cache is a thread-safe, in-memory cache library for Go that stores arbitrary objects with per-item expiration… memcached/memcached — Memcached is a high-performance, distributed, in-memory key-value storage and request routing engine. It functions as… tporadowski/redis — Redis is a high-performance in-memory key-value store that functions as a distributed cache, message broker, and NoSQL…