R2DBC encourages libraries to provide a “humane” API in the form of a client library. R2DBC avoids implementing user-space features in each driver, and leaves these for specific clients to implement.

If you’re eager to start using R2DBC to build an application, check out the existing clients listed below. If you’re interested in crafting your own client, check out the section on new clients further down.

Existing Clients

  • r2dbc-client - client using pure Reactor (i.e. no Spring dependencies).
  • spring-data-r2dbc - Spring Data client for R2DBC.
  • Kotysa - Typesafe and Co-routine-ready SQL engine using Kotlin.
  • jOOQ - a fluent API for typesafe SQL query construction library.
  • Testcontainers - support to connect and bootstrap a database in a Testcontainer.
  • Komapper - Kotlin ORM for JDBC and R2DBC.

Client Development Under Investigation

Writing a Client

R2DBC’s minimal SPI makes it easy to write a client, and the clients listed above can provide inspiration if you wish to write a different client for the community. You can find the SPI at:

  • Group io.r2dbc
  • Artifact r2dbc-spi

This artifact contains R2DBC’s Connection interface (and others), which you can wrap from within your client. The R2DBC ConnectionFactory, Connection, and Statement SPIs provide you the necessary building blocks for writing a custom client.