Difference between revisions of "Client Libraries"

From PostgreSQL wiki
Jump to: navigation, search
(C++: Add Pgfe)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Work-in-progress.
+
'''<span style="color: red">WARNING:</span>''' This page is deprecated. For a list of PostgreSQL client libraries, please visit: [[List_of_drivers|Drivers]]
  
 
Access libraries, which allow you to talk the PostgreSQL [https://www.postgresql.org/docs/current/static/protocol.html protocol] from your favorite language.
 
Access libraries, which allow you to talk the PostgreSQL [https://www.postgresql.org/docs/current/static/protocol.html protocol] from your favorite language.
Line 15: Line 15:
 
https://www.postgresql.org/docs/10/static/ecpg.html
 
https://www.postgresql.org/docs/10/static/ecpg.html
  
SQL embedded in C. Part of the standard PostgreSQL distribution. I don't recall ever hearing about anyone using this.
+
SQL embedded in C. Part of the standard PostgreSQL distribution.
  
 
== C++ ==
 
== C++ ==
Line 29: Line 29:
 
http://doc.qt.io/qt-5/qtsql-index.html
 
http://doc.qt.io/qt-5/qtsql-index.html
  
A cross-database library, with decent PostgreSQL support. Integrates well with Qt widgets, provides the basics.
+
A cross-database library, with decent PostgreSQL support. Integrates with Qt widgets, provides the basics.
  
 
=== Pgfe ===
 
=== Pgfe ===
Line 36: Line 36:
  
 
An initial release of a C++17 wrapper for libpq.
 
An initial release of a C++17 wrapper for libpq.
 +
 +
=== OZO ===
 +
 +
https://github.com/yandex/ozo
 +
 +
OZO is a C++17 library for asynchronous communication with PostgreSQL DBMS. The library leverages the power of template metaprogramming, providing a convenient mapping from C++ types to SQL along with rich query building possibilities. OZO supports different asynchronous paradigms (callbacks, futures, coroutines), using Boost.Asio under the hood. Low-level communication with PostgreSQL server is done via libpq. All concepts in the library are designed to be easily extendable (even replaceable) by the user to simplify adaptation to specific project requirements.
  
 
== Elixir ==
 
== Elixir ==
Line 45: Line 51:
 
== Go ==
 
== Go ==
  
 +
=== pq ===
 +
 +
https://github.com/lib/pq
 +
 +
A pure Go driver for Go's database/sql
 +
 +
=== pgx ===
 +
 +
https://github.com/jackc/pgx
 +
 +
A pure Go driver, more features than lib/pq
 +
 +
=== go-pg ===
 +
 +
https://github.com/go-pg/pg
 +
 +
Go driver and ORM
 +
 
== Haskell ==
 
== Haskell ==
  
Line 82: Line 106:
  
 
http://www.npgsql.org/
 
http://www.npgsql.org/
 +
 +
== ODBC ==
 +
 +
https://odbc.postgresql.org/
  
 
== Perl ==
 
== Perl ==
Line 95: Line 123:
 
http://search.cpan.org/~arc/DBD-PgPP-0.08/lib/DBD/PgPP.pm
 
http://search.cpan.org/~arc/DBD-PgPP-0.08/lib/DBD/PgPP.pm
  
Another DBI driver, this one written in pure perl. Only consider using this if DBD::Pg is not an option.
+
Another DBI driver, this one written in pure Perl.
  
 
== PHP ==
 
== PHP ==
Line 138: Line 166:
  
 
Native Rust implementation.
 
Native Rust implementation.
 +
 +
== tcl ==
 +
 +
=== pgtcl ===
 +
 +
https://github.com/flightaware/Pgtcl
 +
 +
=== pgtclng ===
 +
 +
http://sourceforge.net/projects/pgtclng/

Latest revision as of 21:57, 8 April 2019

WARNING: This page is deprecated. For a list of PostgreSQL client libraries, please visit: Drivers

Access libraries, which allow you to talk the PostgreSQL protocol from your favorite language.

C

libpq

https://www.postgresql.org/docs/current/static/libpq.html

The standard access library, used by all the standard PostgreSQL tools. It lets you do almost anything, but is quite low level.

ECPG

https://www.postgresql.org/docs/10/static/ecpg.html

SQL embedded in C. Part of the standard PostgreSQL distribution.

C++

libpqxx

http://pqxx.org/development/libpqxx/

A nice C++ library, with no dependencies other than libpq.

QtSql

http://doc.qt.io/qt-5/qtsql-index.html

A cross-database library, with decent PostgreSQL support. Integrates with Qt widgets, provides the basics.

Pgfe

https://github.com/dmitigr/pgfe

An initial release of a C++17 wrapper for libpq.

OZO

https://github.com/yandex/ozo

OZO is a C++17 library for asynchronous communication with PostgreSQL DBMS. The library leverages the power of template metaprogramming, providing a convenient mapping from C++ types to SQL along with rich query building possibilities. OZO supports different asynchronous paradigms (callbacks, futures, coroutines), using Boost.Asio under the hood. Low-level communication with PostgreSQL server is done via libpq. All concepts in the library are designed to be easily extendable (even replaceable) by the user to simplify adaptation to specific project requirements.

Elixir

Postgrex

http://hexdocs.pm/postgrex/

Go

pq

https://github.com/lib/pq

A pure Go driver for Go's database/sql

pgx

https://github.com/jackc/pgx

A pure Go driver, more features than lib/pq

go-pg

https://github.com/go-pg/pg

Go driver and ORM

Haskell

postgresql-simple

https://hackage.haskell.org/package/postgresql-simple

Java

PostgreSQL JDBC Driver

https://jdbc.postgresql.org

Javascript

node-postgres

https://node-postgres.com

pg-promise

http://vitaly-t.github.io/pg-promise/

Common Lisp

Postmodern

http://marijnhaverbeke.nl/postmodern/

CLSQL

https://github.com/sshirokov/CLSQL

.Net

npgsql

http://www.npgsql.org/

ODBC

https://odbc.postgresql.org/

Perl

DBD::Pg

http://search.cpan.org/~turnstep/DBD-Pg/Pg.pm

The standard PostgreSQL driver for DBI based on libpq

DBD::PgPP

http://search.cpan.org/~arc/DBD-PgPP-0.08/lib/DBD/PgPP.pm

Another DBI driver, this one written in pure Perl.

PHP

Pomm

http://www.pomm-project.org

ORMish

ext-pq

https://github.com/m6w6/ext-pq

A PHP binding to libpq

Python

psycopg2

https://pypi.python.org/pypi/psycopg2

R

RPostgreSQL

https://cran.r-project.org/package=RPostgreSQL

DBI driver

Ruby

ruby-pg

https://bitbucket.org/ged/ruby-pg/wiki/Home

Rust

rust-postgres

https://github.com/sfackler/rust-postgres

Native Rust implementation.

tcl

pgtcl

https://github.com/flightaware/Pgtcl

pgtclng

http://sourceforge.net/projects/pgtclng/