postgresql/doc/src/sgml/external-projects.sgml

248 lines
8.1 KiB
Plaintext

<!-- $PostgreSQL: pgsql/doc/src/sgml/external-projects.sgml,v 1.20.2.1 2010/08/17 04:37:16 petere Exp $ -->
<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>
<para>
To help our community with the development of their external projects, we
have created <ulink url="http://www.pgfoundry.org/">PgFoundry</ulink>, a
website that provides hosting for <productname>PostgreSQL</>-related
projects that are maintained outside the core <productname>PostgreSQL</>
distribution. PgFoundry is built using the GForge software project and is
similar to <ulink url="http://sourceforge.net">SourceForge.net</> in its
feature set, providing mailing lists, forums, bug tracking, SCM, and web
hosting. If you have a <productname>PostgreSQL</>-related open source
project that you would like to have hosted at PgFoundy, please feel free
to create a new 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</>
<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/">http://search.cpan.org/dist/DBD-Pg/</ulink></entry>
</row>
<row>
<entry>JDBC</entry>
<entry>JDBC</entry>
<entry>Type 4 JDBC driver</entry>
<entry><ulink url="http://jdbc.postgresql.org/">http://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/">http://pqxx.org/</ulink></entry>
</row>
<row>
<entry>Npgsql</entry>
<entry>.NET</entry>
<entry>.NET data provider</entry>
<entry><ulink url="http://www.npgsql.org/">http://www.npgsql.org/</ulink></entry>
</row>
<row>
<entry>pgtclng</entry>
<entry>Tcl</entry>
<entry></entry>
<entry><ulink url="http://sourceforge.net/projects/pgtclng/">http://sourceforge.net/projects/pgtclng/</ulink></entry>
</row>
<row>
<entry>psqlODBC</entry>
<entry>ODBC</entry>
<entry>ODBC driver</entry>
<entry><ulink url="https://odbc.postgresql.org/">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-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="http://www.commandprompt.com/community/plphp/">http://www.commandprompt.com/community/plphp/</ulink></entry>
</row>
<row>
<entry>PL/Py</entry>
<entry>Python</entry>
<entry><ulink url="http://python.projects.postgresql.org/">http://python.projects.postgresql.org/</ulink></entry>
</row>
<row>
<entry>PL/R</entry>
<entry>R</entry>
<entry><ulink url="http://www.joeconway.com/plr/">http://www.joeconway.com/plr/</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>extensions</primary>
</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 packaged with the database. The
<filename>contrib/</> directory shipped with the source code
contains a large number of extensions. The <filename>README</> file
in that directory contains a summary. They include conversion
tools, full-text indexing, <acronym>XML</> tools, and additional
data types and indexing methods. Other extensions are developed
independently, like <application><ulink
url="http://www.postgis.org/">PostGIS</ulink></>. Even
<productname>PostgreSQL</> replication solutions are 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>
<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>
</appendix>