Skip to content

Goroutine-safe cache library. Support LFU/LRU/ARC policies - partial support for more exotic cache eviction algos is WIP (RR/TinyLFU), expirable entries and snapshots.

License

Notifications You must be signed in to change notification settings

erwanor/gcache2

Repository files navigation

GCache2

GoDoc Go Report Card Waffle.io - Columns and their card count

Work-in-Progress: This repository will be the home of gcache2, a caching library for Golang. Ideally the only one you will ever need. To reach that ambitious goal, I am taking some time to scope and re-architecture gcache such that it becomes easier to add features, maintain existing ones, and get total testing coverage of the execution paths that matter. If you are interested in joining this effort, take a look at the issues! Stay tuned, friends. (:

Overview

The only embedded caching library you will ever need, in Golang.

Features

A variety of concurrency-safe caches are available:

  • LFU (Least-Frequently-Used)

  • LRU (Least-Recently-Used)

  • ARC (Adaptive-Replacement policy)

  • TinyLFU ("clever" admission policy)

  • RR (RandomReplacement)

Other features:

  • Expirable entries

  • Optional support for event handlers (on eviction, purge, set, loader).

  • Cache snapshots

Install

$ go get github.com/aaronwinter/gcache2

Authors

Erwan Ounn (main contributor/maintainer of gcache2)

Jun Kimura (main contributor of gcache)

About

Goroutine-safe cache library. Support LFU/LRU/ARC policies - partial support for more exotic cache eviction algos is WIP (RR/TinyLFU), expirable entries and snapshots.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages