Skip to content
CAI
Software that uses CAICheck a score

asyncer-io/r2dbc-mysql

58.1

Adequate · 22 September 2026

27.9k

lines of production code

Java

primary language

6

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is an R2DBC driver for MySQL and MariaDB, designed to provide reactive database connectivity within the Spring ecosystem. It handles core database operations including connection management, authentication, and data type mapping, while supporting advanced features like Zstandard compression and JSON codec integration. The project also ensures runtime compatibility with GraalVM Native Images and includes comprehensive testing infrastructure to validate performance and functional correctness.

Features

Initial project structure and documentation release

The repository has been initialized with the core project files, including a comprehensive README detailing the R2DBC MySQL implementation's features, compatibility with Spring Boot 4.0 and various MySQL/MariaDB versions, and usage instructions. The release includes the Maven Wrapper (version 3.3.4) for consistent builds, a .gitignore file for standard IDE and build artifacts, and a MAINTAINING.md guide for the release process. The license header has been updated to reflect the 2023 asyncer.io copyright.

(repo-wide) · high confidence

Behavioural changes

Major internal refactoring and new benchmarking infrastructure

The driver has undergone a significant internal restructuring, introducing new core classes such as Binding, Capability, ConnectionContext, and InitFlow to manage connection states, protocol capabilities, and session initialization more robustly. This refactor includes the addition of a JMH benchmarking suite (BenchmarkSupport, SelectOneBenchmark, ServerVersionBenchmark) to measure performance. Additionally, the codebase now supports new configuration options for lock wait and statement timeouts, handles TINYINT(1) UNSIGNED and BIT(1) types more accurately, and improves authentication handling for Unix sockets and caching\_sha2\_password.

r2dbc-mysql/src/main · medium confidence

Test coverage

Added native image compatibility test entry point; Added test resources for local development and CI validation; Expanded test coverage for MySQL R2DBC driver.

Dependencies

Initial project structure and dependency configuration for r2dbc-mysql 1.4.4-SNAPSHOT

This change introduces the Maven project structure for the r2dbc-mysql library, establishing version 1.4.4-SNAPSHOT. It configures core dependencies including R2DBC SPI 1.0.0.RELEASE, Project Reactor BOM 2024.0.3, and Netty 4.1.118.Final. The build also includes optional support for Zstandard compression via zstd-jni 1.5.5-11 and sets up a dedicated test-native-image module using GraalVM native-image-maven-plugin 20.3.17 to ensure compatibility with native builds.

(dependencies) · high confidence

Updated Maven Wrapper to version 3.3.4 with Maven 3.9.15

The Maven Wrapper configuration has been updated to use wrapper version 3.3.4, which downloads and uses Apache Maven 3.9.15. This ensures that builds are executed with a consistent, specified version of Maven rather than relying on whatever version is installed on the developer's machine.

.mvn · 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

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 56 → 58 (+2.2)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 88 → 92 (+4.3)
  • Architecture 100 → 98 (-2.0)
  • Maturity 55 → 52 (-2.9)
  • Readiness 68 → 60 (-8.0)
  • Security 43 → 52 (+8.1)

Resolved (37)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (10 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlSegmentResult.java)
  • Duplicated block (10 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/ZlibCompressor.java)
  • Duplicated block (14 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DoubleCodec.java)
  • Duplicated block (18 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryProvider.java)
  • Duplicated block (5 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareBoundedCache.java)
  • Duplicated block (6 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DefaultCodecs.java)
  • Duplicated block (6 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/CharCollations.java)
  • Duplicated block (6 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/CharCollations.java)
  • Duplicated block (9 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareBoundedCache.java)
  • Duplicated block (9 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/BlobCodec.java)
  • Further orphaned files (smaller)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • …and 17 more

New (154)

  • ClassTooLong: MySqlConnectionConfiguration (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionConfiguration.java)
  • Concentrated knowledge decay
  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no contributor guidance (README.md)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no licence statement (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (10 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlSegmentResult.java)
  • Duplicated block (10 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/ZlibCompressor.java)
  • Duplicated block (10 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/BlobCodec.java)
  • Duplicated block (10 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/InstantCodec.java)
  • Duplicated block (11 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DoubleCodec.java)
  • Duplicated block (12 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/BlobCodec.java)
  • Duplicated block (12 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DoubleCodec.java)
  • Duplicated block (12 lines × 6) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/BitSetCodec.java)
  • Duplicated block (14 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiClob.java)
  • Duplicated block (14–16 lines × 4) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DoubleCodec.java)
  • Duplicated block (17 lines × 3) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryProvider.java)
  • Duplicated block (17–18 lines × 3) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DoubleCodec.java)
  • Duplicated block (18 lines × 2) (r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiBlob.java)
  • …and 134 more

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

Survey your own repository

asyncer-io/r2dbc-mysql 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 22 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 57372dc61557d52bd24596c1ac5f7964f337fb23 — 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-90d5d2fe38ee.