Skip to content
CAI
Software that uses CAICheck a score

RedisLabs/spark-redis

60.4

Adequate · 28 September 2026

2.9k

lines of production code

Scala

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a connector library that integrates Apache Spark with Redis, enabling data processing via RDDs, DataFrames, and Structured Streaming. It supports reading and writing data to Redis using various storage models, including hashes and binary formats, while handling key patterns and schema inference. The library also provides robust streaming capabilities by consuming from Redis Streams with consumer group management and offset tracking. It is designed to operate in both standalone and cluster environments, with support for secure TLS connections and ACL-based authentication.

How it got here

2015–2016 — Spark 3.2 upgrade and Redis Streams support

6 changes.

The project upgraded its dependencies to Spark 3.2.1 and Scala 2.12 while removing the legacy Redis RDD provider. It introduced initial support for reading and writing DataFrames and streaming data via Redis Streams, integrating these capabilities with both the RDD and Structured Streaming APIs.

2018–2020 — Comprehensive test coverage expansion

12 changes.

This period focused on significantly expanding the test suite for the Redis Spark provider, covering DataFrame, RDD, and Stream operations across standalone and cluster environments. The work included adding specific test suites for ACL authentication, SSL/TLS security, and performance benchmarks, alongside utility improvements for connection handling and configuration validation.

Features

Added local sbt launcher scripts

The build system now includes local shell scripts (build/sbt and build/sbt-launch-lib.bash) to manage the SBT build tool. This allows the project to download and run a specific version of SBT automatically, ensuring consistent builds without requiring users to have SBT pre-installed globally.

build · high confidence

Initial support for reading and writing DataFrames and streaming from Redis

This change introduces the core infrastructure for integrating Redis with Spark SQL and Structured Streaming. It adds a DataSourceRegister service file to expose the \org.apache.spark.sql.redis\ format, enabling users to read and write DataFrames using options like \table\, \keys.pattern\, and \model\ (hash or binary). It also implements a Structured Streaming \Source\ (\RedisSource\) that reads from Redis Streams, managing consumer groups and offsets automatically. Additionally, it provides a legacy \RedisContext\ API for RDD-based operations and a \RedisStreamingContext\ for DStream-based streaming from Redis Lists and Streams.

src/main · high confidence

Initial support for reading from Redis Streams

This release introduces the ability to consume data from Redis Streams via both the RDD API and Structured Streaming. Users can now read stream entries using \RedisStreamReceiver\ for Spark Streaming or the new \RedisSourceRdd\ and \RedisSourceConfig\ classes for Structured Streaming, with support for consumer groups, offset management (earliest, latest, or specific IDs), and configurable batch sizes and blocking timeouts.

repository · high confidence

Removals

Removal of legacy Redis RDD provider implementation

The legacy Redis provider implementation located in \src/com/redislab/provider\ has been removed. This deletion eliminates the \RedisConfig\, \RedisPartition\, \RedisPartitioner\, and the core RDD classes (\RedisKVRDD\, \RedisListRDD\) along with the \RedisFunctions\ trait. Users relying on this specific provider package for reading from or writing to Redis via Spark RDDs will no longer have access to these classes.

src/com · high confidence

Test coverage

Added Spark DataFrame benchmark suites for Redis persistence models; Added TLS test resources for SSL connection testing; Added cluster-specific test suites for DataFrames and Spark SQL; Added standalone test suites for Dataframe operations; Added test environment traits for Redis ACL and SSL configurations; Added test resources for streaming and data validation; Added test suites for connection pool library info, configuration, and ACL support; Added test utilities and unit tests for Redis provider components; Added tests for Redis RDD operations and ACL authentication; Added tests for Redis Stream source offset handling and configuration; Added tests for Redis Streams integration; Added tests for Redis table key extraction patterns; Expanded test coverage for DataFrame operations and authentication.

Dependencies

Upgrade to Spark 3.2.1 and Scala 2.12

The spark-redis library has been upgraded to support Apache Spark 3.2.1 and Scala 2.12, replacing the previous Spark 3.0 and Scala 2.12 configuration. This change updates the Jedis client dependency to version 3.9.0 and restructures the Maven build to use the modern scala-maven-plugin, ensuring compatibility with the latest Spark ecosystem versions.

(dependencies) · 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

Score

  • CAI 54 → 60 (+6.2)
  • Rubric changed (rubric-2026.09.8 → rubric-2026.09.16) — scores are not directly comparable.

Lenses

  • Code Health 99 → 99 (+0.0)
  • Architecture 100 → 100 (+0.0)
  • Maturity 38 → 51 (+13.1)
  • Readiness 70 → 70 (+0.0)
  • Security 54 → 54 (+0.0)

Resolved (4)

  • Documentation: no contributor guidance (README.md)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Off-boarding risk: anonymized user #1

New (2)

  • Off-boarding risk: anonymized user #1
  • Scanner failed to run — not a clean result

Architecture

  • Unchanged — 0 containers · 1 contexts · 0 edges

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

RedisLabs/spark-redis 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 28 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 d274b05a7257979b86c270804e78954580d96ce4 — the exact code this score is about.
  • Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-2d9048c36d26.