finds.dev← search

// the find

pgjdbc/r2dbc-postgresql

★ 1,102 · Java · Apache-2.0 · updated Sep 2026

Postgresql R2DBC Driver

The official R2DBC driver for PostgreSQL, maintained under the pgjdbc org. It's meant to be used as the backing implementation for a client library (Spring Data R2DBC, jOOQ, etc.) rather than directly, and targets Java teams already committed to reactive database access.

Deep PostgreSQL-specific feature coverage beyond the generic R2DBC SPI: LISTEN/NOTIFY, logical decoding via replication slots, REFCURSOR support, and transaction definitions with isolation level and deferrable mode set in a single round-trip. The codec system is genuinely extensible — you can register custom Codec and CodecRegistrar implementations for types like Postgres enums without forking the driver. Failover support with targetServerType (primary/secondary) handles basic HA topologies without an external pooler. SCRAM channel binding has a require mode that fails the handshake instead of silently downgrading if the server doesn't support SCRAM-SHA-256-PLUS, which is the right default for anyone who cares about MITM resistance.

Multi-dimensional arrays are explicitly listed as not-yet-done in the README, and several common types (bit/bit varying, cidr, macaddr/macaddr8) are unsupported outright — if your schema uses network address types you're stuck casting through text. CITEXT requires manual casting or a custom StringCodec registration; it's not handled out of the box, which is an easy footgun for anyone migrating from JDBC where this just works. Cursored fetching has a documented incompatibility with newer pgpool versions that needs a non-default compatibilityMode flag to work around — worth knowing before you hit it in production. As with any R2DBC driver, you're adopting a reactive-only API surface; if the rest of your stack is blocking JDBC code, mixing them means running two connection pools and two mental models for the same database.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →