## Appendix H. External Projects

PostgreSQL is a complex software project, and managing it is difficult. We have found that many enhancements to PostgreSQL can be more efficiently developed separately from the core project. Separate projects can have their own developer teams, email lists, bug tracking, and release schedules. While their independence makes development easier, it makes users' jobs harder. They have to hunt around looking for database enhancements to meet their needs. This section describes some of the more popular externally developed enhancements and guides you on how to find them.

Many PostgreSQL-related projects are hosted at either GBorg or pgFoundry. There are other PostgreSQL-related projects that are hosted elsewhere, but you will have to do an Internet search to find them.

## H.1. Externally Developed Interfaces

PostgreSQL includes very few interfaces with the base distribution. libpq is packaged because it is the primary C interface and many other interfaces are built on top of it. ecpg is packaged because it is tied to the server-side grammar so is very dependent on the database version. All the other interfaces are independent projects and must be installed separately.

Some of the more popular interfaces are:

psqlODBC

  This is the most common interface for Windows applications.

pgjdbc

  A JDBC interface.

Npgsql

  .Net interface for more recent Windows applications.

libpqxx

  A newer C++ interface.

libpq++

  An older C++ interface.

pgperl

  A Perl interface with an API similar to libpq.

DBD-Pg

  A Perl interface that uses the DBD-standard API.

pgtclng

  A newer version of the Tcl interface.

pgtcl

  The original version of the Tcl interface.

PyGreSQL

  A Python interface library.

All of these can be found at GBorg or pgFoundry.