Need help with caffeine?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

ben-manes
9.8K Stars 1.0K Forks Apache License 2.0 1.3K Commits 5 Opened issues

Description

A high performance caching library for Java

Services available

!
?

Need anything else?

Contributors list

# 8,748
Groovy
Java
webfram...
microfr...
1186 commits
# 106,587
Java
Shell
21 commits
# 142,666
Java
Shell
11 commits
# 83,675
swagger
Java
swagger...
openapi
8 commits
# 24,908
Groovy
test-fr...
SQL
reactjs
6 commits
# 61,934
Go
openvpn
kuberne...
kubectl...
4 commits
# 143,795
drone-p...
Spring
MongoDB
prometh...
3 commits
# 48,325
XML
java-ap...
Courser...
mocking...
3 commits
# 169,755
Go
CSS
s3
distrib...
3 commits
# 180,712
qrcode-...
barcode
React N...
Objecti...
3 commits
# 166,367
templat...
CSS
Shell
cloud-s...
2 commits
# 202,939
Shell
HTML
builder...
Go
2 commits
# 237,164
CSS
Android
PHP
hybrid-...
1 commit
# 72,534
Shell
css-fra...
materia...
vuejs2
1 commit
# 110,574
Kotlin
HTML
Shell
guava
1 commit
# 278,550
Shell
CSS
C
1 commit
# 44,249
spring-...
Spring
openshi...
jms
1 commit
# 89,946
seleniu...
seleniu...
Maven
Groovy
1 commit
# 51,330
Java
mocking...
oracle
sqlserv...
1 commit
# 317,932
Shell
CSS
HTML
1 commit

Build Status Coverage Status Maven Central JavaDoc License Stack Overflow

Caffeine is a high performance, near optimal caching library. For more details, see our user's guide and browse the API docs for the latest release.

Cache

Caffeine provides an in-memory cache using a Google Guava inspired API. The improvements draw on our experience designing Guava's cache and ConcurrentLinkedHashMap.

LoadingCache graphs = Caffeine.newBuilder()
    .maximumSize(10_000)
    .expireAfterWrite(5, TimeUnit.MINUTES)
    .refreshAfterWrite(1, TimeUnit.MINUTES)
    .build(key -> createExpensiveGraph(key));

Features at a Glance

Caffeine provides flexible construction to create a cache with a combination of the following features: * automatic loading of entries into the cache, optionally asynchronously * size-based eviction when a maximum is exceeded based on frequency and recency * time-based expiration of entries, measured since last access or last write * asynchronously refresh when the first stale request for an entry occurs * keys automatically wrapped in weak references * values automatically wrapped in weak or soft references * notification of evicted (or otherwise removed) entries * writes propagated to an external resource * accumulation of cache access statistics

In addition, Caffeine offers the following extensions: * JSR-107 JCache * Guava adapters * Simulation

Use Caffeine in a community provided integration: * Play Framework: High velocity web framework * Micronaut: A modern, full-stack framework * Spring Cache: As of Spring 4.3 & Boot 1.4 * Akka: Build reactive applications easily * Quarkus: Supersonic Subatomic Java * Scaffeine: Scala wrapper for Caffeine * ScalaCache: Simple caching in Scala * Camel: Routing and mediation engine * JHipster: Generate, develop, deploy

Powering infrastructure near you: * Dropwizard: Ops-friendly, high-performance, RESTful APIs * Cassandra: Manage massive amounts of data, fast * Accumulo: A sorted, distributed key/value store * HBase: A distributed, scalable, big data store * Apache Solr: Blazingly fast enterprise search * Infinispan: Distributed in-memory data grid * Redisson: Ultra-fast in-memory data grid * OpenWhisk: Serverless cloud platform * Corfu: A cluster consistency platform * Grails: Groovy-based web framework * Finagle: Extensible RPC system * Neo4j: Graphs for Everyone * Druid: Real-time analytics

In the News

Download

Download from Maven Central or depend via Gradle:

implementation 'com.github.ben-manes.caffeine:caffeine:3.0.2'

// Optional extensions implementation 'com.github.ben-manes.caffeine:guava:3.0.2' implementation 'com.github.ben-manes.caffeine:jcache:3.0.2'

See the release notes for details of the changes.

Snapshots of the development version are available in Sonatype's snapshots repository.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.