List of drivers

From PostgreSQL wiki
Jump to navigationJump to search

Drivers

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
ODBC C LGPLv2 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
taoPQ C++ BSL-1.0 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]
pgo Erlang Apache 2.0 No Yes [2]
github.com/lib/pq Go MIT No Yes, since 1.1.0
pgx Go MIT No Yes [3], 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.
R2DBC Java Apache 2.0 No Yes
node-postgres JavaScript MIT Optional Yes [4], since 7.9.0
postgres.js JavaScript The Unlicense No Yes
pgmoon Lua MIT No Yes, since 1.13.0 [5]
DBD::Pg Perl Artistic Yes Yes
php-pgsql PHP PHPv3.0.1 Yes Yes
PDO_PGSQL PHP PHPv3.0.1 Yes Yes
ext-pq PHP BSD 2-Clause Yes Yes
Pomm PHP MIT Yes Yes
Psycopg 3 Python LGPLv3 Yes Yes
psycopg2 Python (CPython only) LGPLv3 Yes Yes
asyncpg Python Apache 2 No Yes, since 0.19.0 [6]
pg8000 Python BSD 3-Clause No Yes
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 [7]
PostgresClientKit Swift Apache 2 No Yes [8], since 1.3.0
PostgresNIO Swift MIT No Yes
Pgtcl Tcl BSD 3-Clause Yes Yes
pgtclng Tcl PostgreSQL Yes Yes
postgresql-client TypeScript MIT No Yes

Proprietary

There is a list of proprietary (and open source) drivers listed out on the PostgreSQL website:

https://www.postgresql.org/download/products/2-drivers-and-interfaces/

The PostgreSQL Global Development Group do not endorse or recommend any products listed in the above URL, and cannot vouch for the quality or reliability of any of them.

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