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.

Driver Language uses libpq? Supports SCRAM?
libpq C Yes Yes
ODBC C Yes Yes
libpqxx C++ Yes Yes
QPSQL C++ (Qt) Yes Yes
pgfe C++ Yes Yes
OZO C++ Yes Yes
npgsql C# No Yes, since 3.2.7
crystal-pg Crystal No Yes, since 0.18.0
Postgrex Elixir No Yes, since 0.14.0
emacs-libpq Emacs Lisp Yes Yes
epgsql Erlang No Yes [1] Go No Yes, since 1.1.0
pgx Go No Yes [2], since 3.4.0
go-pg Go No Yes, since 6.15
HDBC Haskell Yes Yes
postgresql-simple Haskell Yes Yes
JDBC Java No Yes, since 42.2.0.
node-postgres JavaScript Optional Yes [3], since 7.9.0
DBD::Pg Perl Yes Yes
php-pgsql PHP Yes Yes
ext-pq PHP Yes Yes
Pomm PHP Yes Yes
psycopg2 Python (CPython only) Yes Yes
asyncpg Python No Yes, since 0.19.0 [4]
psycopg2cffi Python, PyPi Yes Yes
RPostgreSQL R Yes Yes
ruby-pg Ruby Yes Yes
rust-postgres Rust No Yes [5]
PostgresClientKit Swift No No
Pgtcl Tcl Yes Yes
pgtclng Tcl Yes Yes

Unsupported Drivers

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

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

See Also

Personal tools