OSDN Git Service

Add composite-type attributes to information_schema.element_types view
[pg-rex/syncrep.git] / doc / src / sgml / external-projects.sgml
1 <!-- doc/src/sgml/external-projects.sgml -->
2
3  <appendix id="external-projects">
4   <title>External Projects</title>
5
6   <para>
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.
11   </para>
12
13   <para>
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.
24   </para>
25
26  <sect1 id="external-interfaces">
27   <title>Client Interfaces</title>
28
29   <indexterm>
30    <primary>interfaces</primary>
31    <secondary>externally maintained</secondary>
32   </indexterm>
33
34   <para>
35    There are only two client interfaces included in the base
36    <productname>PostgreSQL</productname> distribution:
37    <itemizedlist>
38     <listitem>
39      <para>
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.
43      </para>
44     </listitem>
45
46     <listitem>
47      <para>
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.
51      </para>
52     </listitem>
53    </itemizedlist>
54
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.
61   </para>
62
63   <table id="language-interface-table">
64    <title>Externally Maintained Client Interfaces</title>
65
66    <tgroup cols="4">
67     <thead>
68      <row>
69       <entry>Name</entry>
70       <entry>Language</entry>
71       <entry>Comments</entry>
72       <entry>Website</entry>
73      </row>
74     </thead>
75
76     <tbody>
77      <row>
78       <entry>DBD::Pg</entry>
79       <entry>Perl</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>
82      </row>
83
84      <row>
85       <entry>JDBC</entry>
86       <entry>JDBC</entry>
87       <entry>Type 4 JDBC driver</entry>
88       <entry><ulink url="http://jdbc.postgresql.org/">http://jdbc.postgresql.org/</ulink></entry>
89      </row>
90
91      <row>
92       <entry>libpqxx</entry>
93       <entry>C++</entry>
94       <entry>New-style C++ interface</entry>
95       <entry><ulink url="http://pqxx.org/">http://pqxx.org/</ulink></entry>
96      </row>
97
98      <row>
99       <entry>Npgsql</entry>
100       <entry>.NET</entry>
101       <entry>.NET data provider</entry>
102       <entry><ulink url="http://npgsql.projects.postgresql.org/">http://npgsql.projects.postgresql.org/</ulink></entry>
103      </row>
104
105      <row>
106       <entry>ODBCng</entry>
107       <entry>ODBC</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>
110      </row>
111
112      <row>
113       <entry>pgtclng</entry>
114       <entry>Tcl</entry>
115       <entry></entry>
116       <entry><ulink url="http://pgfoundry.org/projects/pgtclng/">http://pgfoundry.org/projects/pgtclng/</ulink></entry>
117      </row>
118
119      <row>
120       <entry>psqlODBC</entry>
121       <entry>ODBC</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>
124      </row>
125
126      <row>
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>
131      </row>
132     </tbody>
133    </tgroup>
134   </table>
135  </sect1>
136
137  <sect1 id="external-admin-tools">
138  <title>Administration Tools</title>
139
140   <indexterm>
141    <primary>administration tools</primary>
142    <secondary>externally maintained</secondary>
143   </indexterm>
144
145   <para>
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.
150   </para>
151  </sect1>
152
153  <sect1 id="external-pl">
154   <title>Procedural Languages</title>
155
156   <indexterm>
157    <primary>procedural language</primary>
158    <secondary>externally maintained</secondary>
159   </indexterm>
160
161   <para>
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>.
167   </para>
168
169   <para>
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
176    and documentation.
177   </para>
178
179   <table id="pl-language-table">
180    <title>Externally Maintained Procedural Languages</title>
181
182    <tgroup cols="3">
183     <thead>
184      <row>
185       <entry>Name</entry>
186       <entry>Language</entry>
187       <entry>Website</entry>
188      </row>
189     </thead>
190
191     <tbody>
192      <row>
193       <entry>PL/Java</entry>
194       <entry>Java</entry>
195       <entry><ulink url="http://pljava.projects.postgresql.org/">http://pljava.projects.postgresql.org/</ulink></entry>
196      </row>
197
198      <row>
199       <entry>PL/PHP</entry>
200       <entry>PHP</entry>
201       <entry><ulink url="http://www.commandprompt.com/community/plphp/">http://www.commandprompt.com/community/plphp/</ulink></entry>
202      </row>
203
204      <row>
205       <entry>PL/Py</entry>
206       <entry>Python</entry>
207       <entry><ulink url="http://python.projects.postgresql.org/">http://python.projects.postgresql.org/</ulink></entry>
208      </row>
209
210      <row>
211       <entry>PL/R</entry>
212       <entry>R</entry>
213       <entry><ulink url="http://www.joeconway.com/plr/">http://www.joeconway.com/plr/</ulink></entry>
214      </row>
215
216      <row>
217       <entry>PL/Ruby</entry>
218       <entry>Ruby</entry>
219       <entry><ulink url="http://raa.ruby-lang.org/project/pl-ruby/">http://raa.ruby-lang.org/project/pl-ruby/</ulink></entry>
220      </row>
221
222      <row>
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>
226      </row>
227
228      <row>
229       <entry>PL/sh</entry>
230       <entry>Unix shell</entry>
231       <entry><ulink url="http://plsh.projects.postgresql.org/">http://plsh.projects.postgresql.org/</ulink></entry>
232      </row>
233     </tbody>
234    </tgroup>
235   </table>
236  </sect1>
237
238  <sect1 id="external-extensions">
239  <title>Extensions</title>
240
241   <indexterm>
242    <primary>extension</primary>
243    <secondary>externally maintained</secondary>
244   </indexterm>
245
246   <para>
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.
260   </para>
261  </sect1>
262 </appendix>