Clients
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
- MyBatis (#1444)
- JDBI (#1454)
- Querydsl (#2468)
- Helidon (#581)
- Liquibase (CORE-3419)
- Flyway (#2502)
- Exposed (#456)
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.