List of drivers

From PostgreSQL wiki
Jump to: navigation, search


The list below are PostgreSQL drivers (also referred to as "client libraries") that developers can use to interface with PostgreSQL from various programming languages. The list is alphabetized by programming language, and also indicates if the driver is based on libpq and whether or not it supports the SCRAM-SHA-256 authentication protocol that was added in PostgreSQL 10.

NOTE: The drivers listed below are in various states of development. Some of them have been stable for many years and have been proven in various environments, whereas others are in early development. This listed is strictly informational: it is up to you to select the driver that is best for your environment.

If you would like to add additional drivers to the list, please add them in alphabetical order based on the programming language for the driver.

Open Source

Driver Language License uses libpq? Supports SCRAM?
libpq C PostgreSQL Yes Yes
libpqxx C++ BSD 3-Clause Yes Yes
QPSQL C++ (Qt) LGPLv3 Yes Yes
pgfe C++ zlib Yes Yes
OZO C++ PostgreSQL Yes Yes
npgsql C# PostgreSQL No Yes, since 3.2.7
Postmodern Common Lisp zlib and PostgreSQL No Yes, since 1.30
crystal-pg Crystal BSD 3-Clause No Yes, since 0.18.0
Postgrex Elixir Apache 2 No Yes, since 0.14.0
emacs-libpq Emacs Lisp GPLv3 Yes Yes
epgsql Erlang BSD 3-Clause No Yes [1] Go MIT No Yes, since 1.1.0
pgx Go MIT No Yes [2], since 3.4.0
go-pg Go BSD 2-Clause No Yes, since 6.15
HDBC Haskell BSD 3-Clause Yes Yes
postgresql-simple Haskell BSD 3-Clause Yes Yes
JDBC Java BSD 2-Clause No Yes, since 42.2.0.
node-postgres JavaScript MIT Optional Yes [3], since 7.9.0
postgres.js JavaScript Do What The F*ck You Want To Public License No Yes
DBD::Pg Perl GPLv2 Yes Yes
php-pgsql PHP PHPv3.0.1 Yes Yes
ext-pq PHP BSD 2-Clause Yes Yes
Pomm PHP MIT Yes Yes
psycopg2 Python (CPython only) LGPLv3 Yes Yes
asyncpg Python Apache 2 No Yes, since 0.19.0 [4]
psycopg2cffi Python, PyPy LGPLv3 Yes Yes
RPostgreSQL R GPLv2 Yes Yes
ruby-pg Ruby BSD 2-Clause Yes Yes
rust-postgres Rust MIT No Yes [5]
PostgresClientKit Swift Apache 2 No Yes [6], since 1.3.0
PostgresNIO Swift MIT No Yes
Pgtcl Tcl BSD 3-Clause Yes Yes
pgtclng Tcl PostgreSQL Yes Yes


This section is temporary until we determine how we want to list out proprietary / closed source drivers.

Driver Language
ADO.NET Provider for PostgreSQL by CData C#
ODBC Driver for PostgreSQL by CData C
JDBC Driver for PostgreSQL by CData Java

Unsupported Drivers

Below is a list of drivers that are no longer maintained.

Driver Language
CLSQL Common Lisp
pgsql Erlang
erlang-psql-driver Erlang
PgPP Perl

See Also