blemale/scaffeine
58.2
Adequate · 20 September 2026
1k
lines of production code
Scala
with Java
1
measurement over time
What this system is
Scaffeine is a Scala library that provides type-safe wrappers for the Caffeine caching library, supporting Scala versions 2.12, 2.13, and 3. It exposes synchronous and asynchronous cache operations, including loading caches and async reload loaders, while maintaining compatibility with Caffeine's configuration options like expiration policies and size limits.
Features
Add Scala wrappers for Caffeine's AsyncCache and AsyncLoadingCache
This change introduces new \AsyncCache\ and \AsyncLoadingCache\ classes that wrap Caffeine's \AsyncCache\ and \AsyncLoadingCache\ interfaces, exposing asynchronous operations like \get\, \getFuture\, \getAll\, and \getAllFuture\ which return Scala \Future\ types. The implementation uses a \DirectExecutionContext\ for internal callbacks to avoid unnecessary thread switching, and provides a \synchronous()\ method to view the cache as a standard synchronous \Cache\ or \LoadingCache\.
src/main · high confidence
Initial release of Scaffeine with documentation and formatting setup
This entry marks the initial commit for the Scaffeine project, introducing the core documentation in README.md which explains the library as a Scala wrapper for the Caffeine caching library, including API usage examples for Cache, LoadingCache, and AsyncLoadingCache, along with download instructions. It also establishes the project's development infrastructure by adding a .gitignore file tailored for sbt and IntelliJ, and configuring Scalafmt version 3.11.0 with specific dialect and rewrite rules to enforce consistent code formatting.
(repo-wide) · high confidence
Behavioural changes
Support for Caffeine 3.0.2 and async reload loaders
The library has been updated to support Caffeine 3.0.2, introducing new builder methods for configuring schedulers and executors. It now supports async reload loaders via new \AsyncCacheLoaderAdapter\ and \CacheLoaderAdapter\ classes, allowing users to define custom logic for reloading cache entries asynchronously. The \Scaffeine\ builder also exposes methods for setting initial capacity, maximum size/weight, and various reference types (weak/soft keys/values).
repository · high confidence
Test coverage
Added comprehensive unit tests for Scaffeine cache components; Added example tests for Scaffeine cache builders.
Dependencies
Initial project setup with Scala 2.12/2.13/3.3 and Caffeine integration
The build configuration establishes the project as a Scala wrapper for Caffeine, targeting JVM 1.8. It sets the primary Scala version to 2.12.20 and enables cross-compilation for 2.12.21, 2.13.18, and 3.3.7. Dependencies include Caffeine (via a version variable), scala-java8-compat 1.0.2, and scalatest/scalactic 3.2.20 for testing. The build also enforces scalafmt on compile and applies specific compiler flags for Scala 2.12, such as fatal warnings and deprecation checks.
(dependencies) · high confidence
Updated build infrastructure and dependency versions
The project's build configuration has been updated to use sbt version 1.12.9 and Caffeine version 3.2.3. Several SBT plugins have been added or updated, including sbt-scoverage (2.4.4), sbt-coveralls (1.3.15), sbt-scalafmt (2.6.0), sbt-updates (0.6.4), sbt-dependency-graph (0.9.2), sbt-ci-release (1.11.2), and sbt-api-mappings (3.0.2).
project · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 58.
Lenses
- Code Health 100
- Architecture 69
- Maturity 56
- Readiness 50
- Security 73
Changes since last survey
- 300 commits — 299 feature/other, 1 fixes
By area
- (repo) — 207 commits
- (root) — 41 commits
- project/plugins.sbt — 26 commits
- project/build.properties — 16 commits
- .github/workflows — 3 commits
- src/test — 3 commits
- .github/mergify.yml — 2 commits
- project/CaffeineVersion.scala — 2 commits
Notable commits
- fix: fix: Broken WeigherSpec after caffeine upgrade
- change: Add 'Reformat with scalafmt 3.8.2' to .git-blame-ignore-revs
- change: Add 'Reformat with scalafmt 3.9.7' to .git-blame-ignore-revs
- change: Merge branch 'main' into bastien.lemale/chore_update_caffeine_version
- change: Merge branch 'main' into bastien.lemale/chore_update_caffeine_version
- change: Merge branch 'main' into bastien.lemale/chore_update_caffeine_version
- change: Merge branch 'main' into bastien.lemale/chore_update_caffeine_version
- change: Merge branch 'main' into bastien.lemale/chore_update_caffeine_version
- change: Merge branch 'main' into bastien.lemale/chore_update_caffeine_version
- change: Merge branch 'main' into bastien.lemale/chore_update_caffeine_version
- change: Merge branch 'main' into bastien.lemale/chore_update_caffeine_version
- change: Merge branch 'main' into bastien.lemale/chore_update_caffeine_version
- change: Merge branch 'main' into bastien.lemale/doc_api_doc_update
- change: Merge branch 'main' into bastien.lemale/doc_api_doc_update
- change: Merge branch 'main' into patch-1
- change: Merge branch 'main' into patch-2
- change: Merge branch 'main' into setup-scala-deprecated
- change: Merge branch 'main' into setup-scala-deprecated
- change: Merge branch 'main' into setup-scala-deprecated
- change: Merge branch 'main' into setup-scala-deprecated
- …and 280 more
Architecture
- 0 containers · 1 bounded contexts · 0 dependency edges (baseline)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
blemale/scaffeine was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 6f29307b36d3dc1548eee2581e58bd5203ceed89 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.