ristretto
gocache
ristretto | gocache | |
---|---|---|
1 | 2 | |
89 | 2,263 | |
- | - | |
2.0 | 6.6 | |
3 months ago | 4 days ago | |
Go | Go | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ristretto
-
A flexible multi-layer Go caching library to deal with in-memory and shared cache by adopting Cache-Aside pattern.
I think the non-guarantee is in respect to tinylfu acting as a filter, so a new arrival may be immediately discarded. However, if all writes go through this buffer then an update and create are delayed within the hash table. The rational was performance in a microbenchmark to flip the behavior for publishing an article. I recall them admitting it was a mistake due to the surprises it caused and that they hoped to later change it back. You can ask on their new github and maybe send a pr.
gocache
-
Cacheme: Asyncio cache framework with multiple storages and thundering herd protection
I made Cacheme years ago, which support redis and synchronous API only. Then I switch to Go and found that there are some awesome cache projects in Go(ristretto, gocache...), I also made my own Cacheme go version: cacheme-go. After trying asyncio and type hint, I think it's time to rewrite my old Cacheme.
-
Any major projects using generics?
We are using https://github.com/eko/gocache in production projects.
What are some alternatives?
go-cache - A flexible multi-layer Go caching library to deal with in-memory and shared cache by adopting Cache-Aside pattern.
ttlcache - An in-memory cache with item expiration and generics [Moved to: https://github.com/jellydator/ttlcache]
GCache - An in-memory cache library for golang. It supports multiple eviction policies: LRU, LFU, ARC
golang-set - A simple, battle-tested and generic set type for the Go language. Trusted by Docker, 1Password, Ethereum and Hashicorp.
fastcache - Fast thread-safe inmemory cache for big number of entries in Go. Minimizes GC overhead
gota - Gota: DataFrames and data wrangling in Go (Golang)
ristretto - A high performance memory-bound Go cache
fsm - Finite State Machine for Go
null - Nullable Go types that can be marshalled/unmarshalled to/from JSON.
mspm - Multi-String Pattern Matching Algorithm Using TrieNode
go-mcache - Fast in-memory key:value store/cache with TTL
boomfilters - Probabilistic data structures for processing continuous, unbounded streams.