A high-performance, near-optimal in-memory caching library for Java with a Guava-inspired API.
Caffeine is a high-performance, near-optimal caching library for Java that provides an in-memory cache with a Google Guava-inspired API. It solves the problem of efficiently managing cached data with features like size-based eviction, time-based expiration, and asynchronous refresh, designed to maximize cache hit rates and minimize latency.
Java developers building applications that require efficient in-memory caching, such as web servers, data processing systems, and high-throughput services where low-latency data access is critical.
Developers choose Caffeine for its superior performance and near-optimal efficiency, backed by advanced eviction policies like TinyLFU, a flexible and familiar API, and seamless integrations with popular Java frameworks like Spring and Micronaut.
A high performance caching library for Java
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses the TinyLFU eviction policy for near-optimal cache hit rates, backed by academic research and benchmarks highlighted in the README, ensuring low-latency data access.
Inspired by Google Guava's cache API, it offers configurable features like size-based eviction and asynchronous refresh, making adoption straightforward for Java developers.
Seamlessly integrates with popular Java frameworks such as Spring Cache, Micronaut, and Quarkus, as listed in the community integrations section, reducing implementation effort.
Supports automatic loading, eviction notifications, and reference-based management, allowing for sophisticated cache setups tailored to specific application needs.
Lacks built-in support for distributed caching or persistence, requiring external solutions for cross-instance cache sharing or durability, which adds complexity for scalable systems.
The wealth of options like asynchronous refresh and eviction policies can lead to suboptimal performance if misconfigured, necessitating careful tuning and expertise.
Version 3.x requires Java 11 or higher, as noted in the download section, which might hinder adoption in environments constrained to older Java versions.