mirror of
https://github.com/postgres/postgres.git
synced 2026-04-21 06:08:26 -04:00
FlightAware is still maintaining this, and indeed is seemingly being
more active with it than the pgtclng fork is. List both, for the
time being anyway.
In the back branches, also back-port commit e20f679f6 and other
recent updates to the client-interfaces list. I think these are
probably of current interest to users of back branches. I did
not touch the list of externally maintained PLs in the back
branches, though. Those are much more likely to be server version
sensitive, and I don't know which of these PLs work all the way back.
Discussion: https://postgr.es/m/20170730162612.1449.58796@wrigleys.postgresql.org
263 lines
7.8 KiB
Text
263 lines
7.8 KiB
Text
<!-- doc/src/sgml/external-projects.sgml -->
|
|
|
|
<appendix id="external-projects">
|
|
<title>External Projects</title>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</productname> is a complex software project,
|
|
and managing the project is difficult. We have found that many
|
|
enhancements to <productname>PostgreSQL</productname> can be more
|
|
efficiently developed separately from the core project.
|
|
</para>
|
|
|
|
<sect1 id="external-interfaces">
|
|
<title>Client Interfaces</title>
|
|
|
|
<indexterm>
|
|
<primary>interfaces</primary>
|
|
<secondary>externally maintained</secondary>
|
|
</indexterm>
|
|
|
|
<para>
|
|
There are only two client interfaces included in the base
|
|
<productname>PostgreSQL</productname> distribution:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
<link linkend="libpq">libpq</link> is included because it is the
|
|
primary C language interface, and because many other client interfaces
|
|
are built on top of it.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<link linkend="ecpg">ECPG</link> is included because it depends on the
|
|
server-side SQL grammar, and is therefore sensitive to changes in
|
|
<productname>PostgreSQL</productname> itself.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
All other language interfaces are external projects and are distributed
|
|
separately. <xref linkend="language-interface-table"> includes a list of
|
|
some of these projects. Note that some of these packages might not be
|
|
released under the same license as <productname>PostgreSQL</>. For more
|
|
information on each language interface, including licensing terms, refer to
|
|
its website and documentation.
|
|
</para>
|
|
|
|
<table id="language-interface-table">
|
|
<title>Externally Maintained Client Interfaces</title>
|
|
|
|
<tgroup cols="4">
|
|
<thead>
|
|
<row>
|
|
<entry>Name</entry>
|
|
<entry>Language</entry>
|
|
<entry>Comments</entry>
|
|
<entry>Website</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>DBD::Pg</entry>
|
|
<entry>Perl</entry>
|
|
<entry>Perl DBI driver</entry>
|
|
<entry><ulink url="http://search.cpan.org/dist/DBD-Pg/"></ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>JDBC</entry>
|
|
<entry>Java</entry>
|
|
<entry>Type 4 JDBC driver</entry>
|
|
<entry><ulink url="https://jdbc.postgresql.org/"></ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>libpqxx</entry>
|
|
<entry>C++</entry>
|
|
<entry>New-style C++ interface</entry>
|
|
<entry><ulink url="http://pqxx.org/"></ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>node-postgres</entry>
|
|
<entry>JavaScript</entry>
|
|
<entry>Node.js driver</entry>
|
|
<entry><ulink url="https://node-postgres.com/"></ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Npgsql</entry>
|
|
<entry>.NET</entry>
|
|
<entry>.NET data provider</entry>
|
|
<entry><ulink url="http://www.npgsql.org/"></ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>pgtcl</entry>
|
|
<entry>Tcl</entry>
|
|
<entry></entry>
|
|
<entry><ulink url="https://github.com/flightaware/Pgtcl"></ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>pgtclng</entry>
|
|
<entry>Tcl</entry>
|
|
<entry></entry>
|
|
<entry><ulink url="http://sourceforge.net/projects/pgtclng/"></ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>pq</entry>
|
|
<entry>Go</entry>
|
|
<entry>Pure Go driver for Go's database/sql</entry>
|
|
<entry><ulink url="https://github.com/lib/pq"></ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>psqlODBC</entry>
|
|
<entry>ODBC</entry>
|
|
<entry>ODBC driver</entry>
|
|
<entry><ulink url="https://odbc.postgresql.org/"></ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>psycopg</entry>
|
|
<entry>Python</entry>
|
|
<entry>DB API 2.0-compliant</entry>
|
|
<entry><ulink url="http://initd.org/psycopg/"></ulink></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="external-admin-tools">
|
|
<title>Administration Tools</title>
|
|
|
|
<indexterm>
|
|
<primary>administration tools</primary>
|
|
<secondary>externally maintained</secondary>
|
|
</indexterm>
|
|
|
|
<para>
|
|
There are several administration tools available for
|
|
<productname>PostgreSQL</>. The most popular is
|
|
<application><ulink url="http://www.pgadmin.org/">pgAdmin III</ulink></>,
|
|
and there are several commercially available ones as well.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 id="external-pl">
|
|
<title>Procedural Languages</title>
|
|
|
|
<indexterm>
|
|
<primary>procedural language</primary>
|
|
<secondary>externally maintained</secondary>
|
|
</indexterm>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</productname> includes several procedural
|
|
languages with the base distribution: <link
|
|
linkend="plpgsql">PL/pgSQL</link>, <link linkend="pltcl">PL/Tcl</link>,
|
|
<link linkend="plperl">PL/Perl</link>, and <link
|
|
linkend="plpython">PL/Python</link>.
|
|
</para>
|
|
|
|
<para>
|
|
In addition, there are a number of procedural languages that are developed
|
|
and maintained outside the core <productname>PostgreSQL</productname>
|
|
distribution. <xref linkend="pl-language-table"> lists some of these
|
|
packages. Note that some of these projects might not be released under the same
|
|
license as <productname>PostgreSQL</>. For more information on each
|
|
procedural language, including licensing information, refer to its website
|
|
and documentation.
|
|
</para>
|
|
|
|
<table id="pl-language-table">
|
|
<title>Externally Maintained Procedural Languages</title>
|
|
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Name</entry>
|
|
<entry>Language</entry>
|
|
<entry>Website</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>PL/Java</entry>
|
|
<entry>Java</entry>
|
|
<entry><ulink url="https://github.com/tada/pljava">https://github.com/tada/pljava</ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>PL/PHP</entry>
|
|
<entry>PHP</entry>
|
|
<entry><ulink url="https://public.commandprompt.com/projects/plphp">https://public.commandprompt.com/projects/plphp</ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>PL/Py</entry>
|
|
<entry>Python</entry>
|
|
<entry><ulink url="http://python.projects.postgresql.org/backend/">http://python.projects.postgresql.org/backend/</ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>PL/R</entry>
|
|
<entry>R</entry>
|
|
<entry><ulink url="http://www.joeconway.com/plr.html">http://www.joeconway.com/plr.html</ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>PL/Ruby</entry>
|
|
<entry>Ruby</entry>
|
|
<entry><ulink url="http://raa.ruby-lang.org/project/pl-ruby/">http://raa.ruby-lang.org/project/pl-ruby/</ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>PL/Scheme</entry>
|
|
<entry>Scheme</entry>
|
|
<entry><ulink url="http://plscheme.projects.postgresql.org/">http://plscheme.projects.postgresql.org/</ulink></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>PL/sh</entry>
|
|
<entry>Unix shell</entry>
|
|
<entry><ulink url="https://github.com/petere/plsh">https://github.com/petere/plsh</ulink></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="external-extensions">
|
|
<title>Extensions</title>
|
|
|
|
<indexterm>
|
|
<primary>extension</primary>
|
|
<secondary>externally maintained</secondary>
|
|
</indexterm>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</> is designed to be easily extensible. For
|
|
this reason, extensions loaded into the database can function
|
|
just like features that are built in. The
|
|
<filename>contrib/</> directory shipped with the source code
|
|
contains several extensions, which are described in
|
|
<xref linkend="contrib">. Other extensions are developed
|
|
independently, like <application><ulink
|
|
url="http://postgis.net/">PostGIS</ulink></>. Even
|
|
<productname>PostgreSQL</> replication solutions can be developed
|
|
externally. For example, <application> <ulink
|
|
url="http://www.slony.info">Slony-I</ulink></> is a popular
|
|
master/standby replication solution that is developed independently
|
|
from the core project.
|
|
</para>
|
|
</sect1>
|
|
</appendix>
|