1 <!-- doc/src/sgml/external-projects.sgml -->
3 <appendix id="external-projects">
4 <title>External Projects</title>
7 <productname>PostgreSQL</productname> is a complex software project,
8 and managing the project is difficult. We have found that many
9 enhancements to <productname>PostgreSQL</productname> can be more
10 efficiently developed separately from the core project.
14 To help our community with the development of their external projects, we
15 have created <ulink url="http://www.pgfoundry.org/">PgFoundry</ulink>, a
16 website that provides hosting for <productname>PostgreSQL</>-related
17 projects that are maintained outside the core <productname>PostgreSQL</>
18 distribution. PgFoundry is built using the GForge software project and is
19 similar to <ulink url="http://sourceforge.net">SourceForge.net</> in its
20 feature set, providing mailing lists, forums, bug tracking, SCM, and web
21 hosting. If you have a <productname>PostgreSQL</>-related open source
22 project that you would like to have hosted at PgFoundry, please feel free
23 to create a new project there.
26 <sect1 id="external-interfaces">
27 <title>Client Interfaces</title>
30 <primary>interfaces</primary>
31 <secondary>externally maintained</secondary>
35 There are only two client interfaces included in the base
36 <productname>PostgreSQL</productname> distribution:
40 <link linkend="libpq">libpq</link> is included because it is the
41 primary C language interface, and because many other client interfaces
42 are built on top of it.
48 <link linkend="ecpg">ECPG</link> is included because it depends on the
49 server-side SQL grammar, and is therefore sensitive to changes in
50 <productname>PostgreSQL</productname> itself.
55 All other language interfaces are external projects and are distributed
56 separately. <xref linkend="language-interface-table"> includes a list of
57 some of these projects. Note that some of these packages might not be
58 released under the same license as <productname>PostgreSQL</>. For more
59 information on each language interface, including licensing terms, refer to
60 its website and documentation.
63 <table id="language-interface-table">
64 <title>Externally Maintained Client Interfaces</title>
70 <entry>Language</entry>
71 <entry>Comments</entry>
72 <entry>Website</entry>
78 <entry>DBD::Pg</entry>
80 <entry>Perl DBI driver</entry>
81 <entry><ulink url="http://search.cpan.org/dist/DBD-Pg/">http://search.cpan.org/dist/DBD-Pg/</ulink></entry>
87 <entry>Type 4 JDBC driver</entry>
88 <entry><ulink url="http://jdbc.postgresql.org/">http://jdbc.postgresql.org/</ulink></entry>
92 <entry>libpqxx</entry>
94 <entry>New-style C++ interface</entry>
95 <entry><ulink url="http://pqxx.org/">http://pqxx.org/</ulink></entry>
101 <entry>.NET data provider</entry>
102 <entry><ulink url="http://npgsql.projects.postgresql.org/">http://npgsql.projects.postgresql.org/</ulink></entry>
106 <entry>ODBCng</entry>
108 <entry>An alternative ODBC driver</entry>
109 <entry><ulink url="http://projects.commandprompt.com/public/odbcng/">http://projects.commandprompt.com/public/odbcng/</ulink></entry>
113 <entry>pgtclng</entry>
116 <entry><ulink url="http://pgfoundry.org/projects/pgtclng/">http://pgfoundry.org/projects/pgtclng/</ulink></entry>
120 <entry>psqlODBC</entry>
122 <entry>The most commonly-used ODBC driver</entry>
123 <entry><ulink url="http://psqlodbc.projects.postgresql.org/">http://psqlodbc.projects.postgresql.org/</ulink></entry>
127 <entry>psycopg</entry>
128 <entry>Python</entry>
129 <entry>DB API 2.0-compliant</entry>
130 <entry><ulink url="http://www.initd.org/">http://www.initd.org/</ulink></entry>
137 <sect1 id="external-admin-tools">
138 <title>Administration Tools</title>
141 <primary>administration tools</primary>
142 <secondary>externally maintained</secondary>
146 There are several administration tools available for
147 <productname>PostgreSQL</>. The most popular is
148 <application><ulink url="http://www.pgadmin.org/">pgAdmin III</ulink></>,
149 and there are several commercially available ones as well.
153 <sect1 id="external-pl">
154 <title>Procedural Languages</title>
157 <primary>procedural language</primary>
158 <secondary>externally maintained</secondary>
162 <productname>PostgreSQL</productname> includes several procedural
163 languages with the base distribution: <link
164 linkend="plpgsql">PL/pgSQL</link>, <link linkend="pltcl">PL/Tcl</link>,
165 <link linkend="plperl">PL/Perl</link>, and <link
166 linkend="plpython">PL/Python</link>.
170 In addition, there are a number of procedural languages that are developed
171 and maintained outside the core <productname>PostgreSQL</productname>
172 distribution. <xref linkend="pl-language-table"> lists some of these
173 packages. Note that some of these projects might not be released under the same
174 license as <productname>PostgreSQL</>. For more information on each
175 procedural language, including licensing information, refer to its website
179 <table id="pl-language-table">
180 <title>Externally Maintained Procedural Languages</title>
186 <entry>Language</entry>
187 <entry>Website</entry>
193 <entry>PL/Java</entry>
195 <entry><ulink url="http://pljava.projects.postgresql.org/">http://pljava.projects.postgresql.org/</ulink></entry>
199 <entry>PL/PHP</entry>
201 <entry><ulink url="http://www.commandprompt.com/community/plphp/">http://www.commandprompt.com/community/plphp/</ulink></entry>
206 <entry>Python</entry>
207 <entry><ulink url="http://python.projects.postgresql.org/">http://python.projects.postgresql.org/</ulink></entry>
213 <entry><ulink url="http://www.joeconway.com/plr/">http://www.joeconway.com/plr/</ulink></entry>
217 <entry>PL/Ruby</entry>
219 <entry><ulink url="http://raa.ruby-lang.org/project/pl-ruby/">http://raa.ruby-lang.org/project/pl-ruby/</ulink></entry>
223 <entry>PL/Scheme</entry>
224 <entry>Scheme</entry>
225 <entry><ulink url="http://plscheme.projects.postgresql.org/">http://plscheme.projects.postgresql.org/</ulink></entry>
230 <entry>Unix shell</entry>
231 <entry><ulink url="http://plsh.projects.postgresql.org/">http://plsh.projects.postgresql.org/</ulink></entry>
238 <sect1 id="external-extensions">
239 <title>Extensions</title>
242 <primary>extension</primary>
243 <secondary>externally maintained</secondary>
247 <productname>PostgreSQL</> is designed to be easily extensible. For
248 this reason, extensions loaded into the database can function
249 just like features that are built in. The
250 <filename>contrib/</> directory shipped with the source code
251 contains several extensions, which are described in
252 <xref linkend="contrib">. Other extensions are developed
253 independently, like <application><ulink
254 url="http://www.postgis.org/">PostGIS</ulink></>. Even
255 <productname>PostgreSQL</> replication solutions can be developed
256 externally. For example, <application> <ulink
257 url="http://www.slony.info">Slony-I</ulink></> is a popular
258 master/standby replication solution that is developed independently
259 from the core project.