## Appendix H. External Projects

Postgres Pro is a complex software project, and managing the project is difficult. We have found that many enhancements to Postgres Pro can be more efficiently developed separately from the core project.

## H.1. Client Interfaces

There are only two client interfaces included in the base Postgres Pro distribution:

- libpq is included because it is the primary C language interface, and because many other client interfaces are built on top of it.

- ECPG is included because it depends on the server-side SQL grammar, and is therefore sensitive to changes in Postgres Pro itself.

All other language interfaces are external projects and are distributed separately. Table H.1, “Externally Maintained Client Interfaces” includes a list of some of these projects. Note that some of these packages might not be released under the same license as Postgres Pro. For more information on each language interface, including licensing terms, refer to its website and documentation.

Table H.1. Externally Maintained Client Interfaces

Name | Language | Comments | Website
--- | --- | --- | ---
DBD::Pg | Perl | Perl DBI driver | http://search.cpan.org/dist/DBD-Pg/
JDBC | Java | Type 4 JDBC driver | https://jdbc.postgresql.org/
libpqxx | C++ | New-style C++ interface | http://pqxx.org/
node-postgres | JavaScript | Node.js driver | https://node-postgres.com/
Npgsql | .NET | .NET data provider | http://www.npgsql.org/
pgtcl | Tcl |  | https://github.com/flightaware/Pgtcl
pgtclng | Tcl |  | http://sourceforge.net/projects/pgtclng/
pq | Go | Pure Go driver for Go's database/sql | https://github.com/lib/pq
psqlODBC | ODBC | ODBC driver | https://odbc.postgresql.org/
psycopg | Python | DB API 2.0-compliant | http://initd.org/psycopg/