asyncer-io / r2dbc-mysql

Reactive Relational Database Connectivity for MySQL. The official successor to mirromutth/r2dbc-mysql(dev.miku:r2dbc-mysql).
https://r2dbc.io
Apache License 2.0
181 stars 18 forks source link

[feature] Extract public API into API package #251

Closed mirromutth closed 4 months ago

mirromutth commented 4 months ago

Is your feature request related to a problem? Please describe.

Now we are exposing custom API extensions such as MySqlBatch, MySqlStatement, etc. So I think we can expose that API using a stable design.

Extract API will help us:

  1. Standardize our interface
  2. Let us clearly know which implementations are not consistent with r2dbc spec, like #244
  3. Issue #245 can be resolved in an easier way
  4. Java 9 Modules support can be added in an easier way
  5. Make it easier for users or new contributors to understand the source code

Describe the solution you'd like

Extract these public interfaces to api package:

Additional context

The extension.Extension and extension.CodecRegistrar are our extension SPI instead of an API, so keep as is.

See also r2dbc-mariadb and r2dbc-postgres does.