1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-23 14:01:44 +03:00
Files
postgres/doc/src/sgml/external-projects.sgml
Peter Eisentraut a06e56b247 doc: Update redirecting links
Update links that resulted in redirects.  Most are changes from http to
https, but there are also some other minor edits.  (There are still some
redirects where the target URL looks less elegant than the one we
currently have.  I have left those as is.)
2018-07-16 10:48:05 +02:00

252 lines
7.3 KiB
Plaintext

<!-- 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</productname>. 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="https://metacpan.org/release/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>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="https://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</productname>. The most popular is
<application><ulink url="https://www.pgadmin.org/">pgAdmin</ulink></application>,
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</productname>. 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://tada.github.io/pljava/"></ulink></entry>
</row>
<row>
<entry>PL/Lua</entry>
<entry>Lua</entry>
<entry><ulink url="https://github.com/pllua/pllua"></ulink></entry>
</row>
<row>
<entry>PL/R</entry>
<entry>R</entry>
<entry><ulink url="http://www.joeconway.com/plr.html"></ulink></entry>
</row>
<row>
<entry>PL/sh</entry>
<entry>Unix shell</entry>
<entry><ulink url="https://github.com/petere/plsh"></ulink></entry>
</row>
<row>
<entry>PL/v8</entry>
<entry>JavaScript</entry>
<entry><ulink url="https://github.com/plv8/plv8"></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</productname> 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/</filename> 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></application>. Even
<productname>PostgreSQL</productname> replication solutions can be developed
externally. For example, <application> <ulink
url="http://www.slony.info">Slony-I</ulink></application> is a popular
master/standby replication solution that is developed independently
from the core project.
</para>
</sect1>
</appendix>