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.
- 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.
Client Development Under Investigation
- MyBatis (#1444)
- JDBI (#1454)
- jOOQ (#6298)
- 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:
This artifact contains R2DBC’s
Connection interface (and others), which you can wrap from within your client. The R2DBC
Statement SPIs provide you the necessary building blocks for writing a custom client.