theine
high performance in-memory cache (by Yiling-J)
LIRS2
LIRS2 source code & miss ratio curves of 115 traces (by zhongch4g)
theine | LIRS2 | |
---|---|---|
8 | 2 | |
283 | 3 | |
- | - | |
6.4 | 10.0 | |
6 months ago | almost 3 years ago | |
Python | C++ | |
BSD 3-clause "New" or "Revised" License | - |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
theine
Posts with mentions or reviews of theine.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-04-19.
-
Astral, the company behind Ruff
Rust is good, but when you need a double linked list(my Theine cache package uses that a lot) everything changes. Actually I would recommend Go if you want an alternative.
- Theine 0.3.3 released, introducing new Clock-Pro eviction policy
- Theine 0.3.3, introducing new Clock-PRO eviction policy
-
This Week In Python
theine – high performance in-memory cache
-
Bounded Zipf generator ported from Go
A simple bounded Zipf generator I used in Theine benchmarks, maybe useful if you need a Zipf random number generator.
- Theine 0.3.0 release, 5x faster than cachetools/cacheout
- Theine 0.1.3 release, sync/async decorator added
-
Python deserves a good in-memory cache library!
If you know Caffeine(Java)/Ristretto(Go)/Moka(Rust), you know what Theine is. Python deserves a good in-memory cache library.
LIRS2
Posts with mentions or reviews of LIRS2.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-06-22.
- FIFO-Reinsertion is better than LRU [pdf]
-
Theine 0.3.3 released, introducing new Clock-Pro eviction policy
The main benefit of ClockPro is that it is trivially concurrent for reads, but it could suffer from slow evictions due to O(n) scans. The author's most recent work is LIRS2 which appears to be very competitive except in adaptive stress tests. Unfortunately their ideas never got widely adopted likely due to the algorithms not being very intuitive, hard to write and debug, and not originally having good reference implementations.
What are some alternatives?
When comparing theine and LIRS2 you can also consider the following projects:
theine-core - theine-py rust core
Caffeine - A high performance caching library for Java
huak - My experimental python package manager.
cacheme - Asyncio cache framework for Python
cachetools - Extensible memoizing collections and decorators
moka - A high performance concurrent caching library for Rust
nosqlapi - nosqlapi is a library for building standard NOSQL python libraries.
ristretto - A high performance memory-bound Go cache