|
1 | | -<!-- $PostgreSQL: pgsql/doc/src/sgml/external-projects.sgml,v 1.13 2006/09/16 00:30:13 momjian Exp $ --> |
| 1 | +<!-- $PostgreSQL: pgsql/doc/src/sgml/external-projects.sgml,v 1.14 2006/11/20 17:42:16 neilc Exp $ --> |
2 | 2 |
|
3 | 3 | <appendix id="external-projects"> |
4 | | - <title>PgFoundry andExternal Projects</title> |
| 4 | + <title>External Projects</title> |
5 | 5 |
|
6 | 6 | <para> |
7 | 7 | <productname>PostgreSQL</productname> is a complex software project, |
8 | 8 | and managing the project is difficult. We have found that many |
9 | 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, |
15 | | - we have created the <ulink url="http://www.pgfoundry.org/">PgFoundry</ulink>. |
16 | | - <ulink url="http://www.pgfoundry.org/">PgFoundry</ulink> is built using the |
17 | | - GForge software project and is similar to SourceForge in its feature set. If |
18 | | - you have a PostgreSQL related Open Source project that you would like to |
19 | | - develop and need project management resources such as mailing lists, forums, |
20 | | - bug tracking, and CVS, please feel free to create a new project. |
| 10 | + efficiently developed separately from the core project. |
21 | 11 | </para> |
22 | 12 |
|
23 | 13 | <para> |
24 | | - Secondly, many <productname>PostgreSQL</productname>-related projects are |
25 | | - still hosted at <ulink url="http://gborg.postgresql.org/"><productname>GBorg</></ulink>. |
26 | | - GBorg is the original external community developer site, and while it is |
27 | | - currently closed to new projects in favor of PgFoundry, it still contains |
28 | | - many active and relevant projects. There are other popular <productname>PostgreSQL</productname> |
29 | | - related projects that are hosted independently as well at other community |
30 | | - sites such as <ulink url="http://www.sf.net/">SourceForge</ulink>. You should |
31 | | - search the web if you don't find the project you are looking for. |
| 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, CVS, and web |
| 21 | + hosting. If you have a <productname>PostgreSQL</>-related open source |
| 22 | + project that you would like to have hosted at PgFoundy, please feel free |
| 23 | + to create a new project. |
32 | 24 | </para> |
33 | 25 |
|
| 26 | + <note> |
| 27 | + <para> |
| 28 | + Many <productname>PostgreSQL</productname>-related projects are still |
| 29 | + hosted at <ulink url="http://gborg.postgresql.org/">GBorg</>. GBorg is |
| 30 | + the original external community developer site, and while it is |
| 31 | + currently closed to new projects in favor of PgFoundry, it still |
| 32 | + contains many active and relevant projects. Other popular |
| 33 | + <productname>PostgreSQL</productname>-related projects are hosted |
| 34 | + independently, or on other project-hosting sites such such as <ulink |
| 35 | + url="http://sourceforge.net/">SourceForge.net</ulink>. You should search |
| 36 | + the web if you don't find the project you are looking for. |
| 37 | + </para> |
| 38 | + </note> |
| 39 | + |
34 | 40 | <sect1 id="external-interfaces"> |
35 | | - <title>Externally Developed Interfaces</title> |
| 41 | + <title>Client Interfaces</title> |
36 | 42 |
|
37 | 43 | <indexterm> |
38 | 44 | <primary>interfaces</primary> |
| 45 | + <secondary>externally maintained</secondary> |
39 | 46 | </indexterm> |
40 | 47 |
|
41 | 48 | <para> |
42 | | - <productname>PostgreSQL</productname> includes very few interfaces |
43 | | - with the base distribution. <application>libpq</> is packaged because |
44 | | - it is the primary <application>C</> interface and many other interfaces |
45 | | - are build on top of it. <application>ecpg</> is also packaged because it is |
46 | | - tied to the server-side grammar so is very dependent on the database |
47 | | - version. All the other interfaces, such as ODBC, Java, Perl, Python, and |
48 | | - others, are external projects and must be installed separately. |
| 49 | + There are only two client interfaces included in the base |
| 50 | + <productname>PostgreSQL</productname> distribution: |
| 51 | + <itemizedlist> |
| 52 | + <listitem> |
| 53 | + <para> |
| 54 | + <link linkend="libpq">libpq</link> is included because it is the |
| 55 | + primary C language interface, and because many other client interfaces |
| 56 | + are built on top of it. |
| 57 | + </para> |
| 58 | + </listitem> |
| 59 | + |
| 60 | + <listitem> |
| 61 | + <para> |
| 62 | + <link linkend="ecpg">ecpg</link> is included because it depends on the |
| 63 | + server-side SQL grammar, and is therefore sensitive to changes in |
| 64 | + <productname>PostgreSQL</productname> itself. |
| 65 | + </para> |
| 66 | + </listitem> |
| 67 | + </itemizedlist> |
| 68 | + |
| 69 | + All other language interfaces are external projects and are distributed |
| 70 | + separately. <xref linkend="language-interface-table"> includes a list of |
| 71 | + some of these projects. Note that some of these packages may not be |
| 72 | + released under the same license as <productname>PostgreSQL</>. For more |
| 73 | + information on each language interface, including licensing terms, refer to |
| 74 | + its website and documentation. |
49 | 75 | </para> |
50 | 76 |
|
| 77 | + <table id="language-interface-table"> |
| 78 | + <title>Externally Maintained Client Interfaces</> |
| 79 | + |
| 80 | + <tgroup cols="4"> |
| 81 | + <thead> |
| 82 | + <row> |
| 83 | + <entry>Name</entry> |
| 84 | + <entry>Language</entry> |
| 85 | + <entry>Comments</entry> |
| 86 | + <entry>Website</entry> |
| 87 | + </row> |
| 88 | + </thead> |
| 89 | + |
| 90 | + <tbody> |
| 91 | + <row> |
| 92 | + <entry>DBD::Pg</entry> |
| 93 | + <entry>Perl</entry> |
| 94 | + <entry>Perl DBI driver</entry> |
| 95 | + <entry><ulink url="http://search.cpan.org/dist/DBD-Pg/">http://search.cpan.org/dist/DBD-Pg/</ulink></entry> |
| 96 | + </row> |
| 97 | + |
| 98 | + <row> |
| 99 | + <entry>JDBC</entry> |
| 100 | + <entry>JDBC</entry> |
| 101 | + <entry>Type 4 JDBC driver</entry> |
| 102 | + <entry><ulink url="http://jdbc.postgresql.org/">http://jdbc.postgresql.org/</ulink></entry> |
| 103 | + </row> |
| 104 | + |
| 105 | + <row> |
| 106 | + <entry>libpqxx</entry> |
| 107 | + <entry>C++</entry> |
| 108 | + <entry>New-style C++ interface</entry> |
| 109 | + <entry><ulink url="http://thaiopensource.org/development/libpqxx/">http://thaiopensource.org/development/libpqxx/</ulink></entry> |
| 110 | + </row> |
| 111 | + |
| 112 | + <row> |
| 113 | + <entry>libpq++</entry> |
| 114 | + <entry>C++</entry> |
| 115 | + <entry>Old-style C++ interface</entry> |
| 116 | + <entry><ulink url="http://gborg.postgresql.org/project/libpqpp/">http://gborg.postgresql.org/project/libpqpp/</ulink></entry> |
| 117 | + </row> |
| 118 | + |
| 119 | + <row> |
| 120 | + <entry>Npgsql</entry> |
| 121 | + <entry>.NET</entry> |
| 122 | + <entry>.NET data provider</entry> |
| 123 | + <entry><ulink url="http://pgfoundry.org/projects/npgsql/">http://pgfoundry.org/projects/npgsql/</ulink></entry> |
| 124 | + </row> |
| 125 | + |
| 126 | + <row> |
| 127 | + <entry>ODBCng</entry> |
| 128 | + <entry>ODBC</entry> |
| 129 | + <entry>An alternative ODBC driver</entry> |
| 130 | + <entry><ulink url="http://projects.commandprompt.com/public/odbcng/">http://projects.commandprompt.com/public/odbcng/</ulink></entry> |
| 131 | + </row> |
| 132 | + |
| 133 | + <row> |
| 134 | + <entry>pgtclng</entry> |
| 135 | + <entry>Tcl</entry> |
| 136 | + <entry></entry> |
| 137 | + <entry><ulink url="http://pgfoundry.org/projects/pgtclng/">http://pgfoundry.org/projects/pgtclng/</ulink></entry> |
| 138 | + </row> |
| 139 | + |
| 140 | + <row> |
| 141 | + <entry>psqlODBC</entry> |
| 142 | + <entry>ODBC</entry> |
| 143 | + <entry>The most commonly-used ODBC driver</entry> |
| 144 | + <entry><ulink url="http://odbc.postgresql.org/">http://odbc.postgresql.org/</ulink></entry> |
| 145 | + </row> |
| 146 | + |
| 147 | + <row> |
| 148 | + <entry>psycopg</entry> |
| 149 | + <entry>Python</entry> |
| 150 | + <entry>DB API 2.0-compliant</entry> |
| 151 | + <entry><ulink url="http://www.initd.org/">http://www.initd.org/</ulink></entry> |
| 152 | + </row> |
| 153 | + </tbody> |
| 154 | + </tgroup> |
| 155 | + </table> |
| 156 | + </sect1> |
| 157 | + |
| 158 | + <sect1 id="external-pl"> |
| 159 | + <title>Procedural Languages</title> |
| 160 | + |
| 161 | + <indexterm> |
| 162 | + <primary>procedural language</primary> |
| 163 | + <secondary>externally maintained</secondary> |
| 164 | + </indexterm> |
| 165 | + |
51 | 166 | <para> |
52 | | - Some of the more popular interfaces are: |
53 | | - |
54 | | - <variablelist> |
55 | | - <varlistentry> |
56 | | - <term>psqlODBC</term> |
57 | | - <listitem> |
58 | | - <para> |
59 | | - This is the most common interface for <application>Windows</> |
60 | | - applications. <ulink url="http://odbc.postgresql.org/">Website.</ulink> |
61 | | - </para> |
62 | | - </listitem> |
63 | | - </varlistentry> |
64 | | - |
65 | | - <varlistentry> |
66 | | - <term>ODBCng</term> |
67 | | - <listitem> |
68 | | - <para> |
69 | | - Another ODBC driver for PostgreSQL. |
70 | | - <ulink url="http://projects.commandprompt.com/public/odbcng/">Website.</ulink> |
71 | | - </para> |
72 | | - </listitem> |
73 | | - </varlistentry> |
74 | | - |
75 | | - <varlistentry> |
76 | | - <term>PostgreSQL JDBC Driver</term> |
77 | | - <listitem> |
78 | | - <para> |
79 | | - A <application>JDBC</> interface. |
80 | | - <ulink url="http://jdbc.postgresql.org/">Website.</ulink> |
81 | | - </para> |
82 | | - </listitem> |
83 | | - </varlistentry> |
84 | | - |
85 | | - <varlistentry> |
86 | | - <term>Npgsql</term> |
87 | | - <listitem> |
88 | | - <para> |
89 | | - <application>.Net</> data provider for <application>C#</> applications. |
90 | | - <ulink url="http://pgfoundry.org/projects/npgsql/">Website.</ulink> |
91 | | - </para> |
92 | | - </listitem> |
93 | | - </varlistentry> |
94 | | - |
95 | | - <varlistentry> |
96 | | - <term>libpqxx</term> |
97 | | - <listitem> |
98 | | - <para> |
99 | | - A <application>C++</> interface. |
100 | | - <ulink url="http://thaiopensource.org/development/libpqxx/">Website.</ulink> |
101 | | - </para> |
102 | | - </listitem> |
103 | | - </varlistentry> |
104 | | - |
105 | | - <varlistentry> |
106 | | - <term>DBD::Pg</term> |
107 | | - <listitem> |
108 | | - <para> |
109 | | - A <application>Perl</> DBI driver for PostgreSQL. |
110 | | - <ulink url="http://search.cpan.org/dist/DBD-Pg/">Website.</ulink> |
111 | | - </para> |
112 | | - </listitem> |
113 | | - </varlistentry> |
114 | | - |
115 | | - <varlistentry> |
116 | | - <term>pgtclng</term> |
117 | | - <listitem> |
118 | | - <para> |
119 | | - A <application>Tcl</> interface. |
120 | | - <ulink url="http://gborg.postgresql.org/project/pgtclng/projdisplay.php">Website.</ulink> |
121 | | - </para> |
122 | | - </listitem> |
123 | | - </varlistentry> |
124 | | - |
125 | | - <varlistentry> |
126 | | - <term>pyscopg</term> |
127 | | - <listitem> |
128 | | - <para> |
129 | | - A <application>Python</> interface library that is DB API 2.0 compliant. |
130 | | - <ulink url="http://www.initd.org/">Website.</ulink> |
131 | | - </para> |
132 | | - </listitem> |
133 | | - </varlistentry> |
134 | | - </variablelist> |
135 | | - </para> |
| 167 | + <productname>PostgreSQL</productname> includes several procedural |
| 168 | + languages with the base distribution: <link |
| 169 | + linkend="plpgsql">PL/PgSQL</link>, <link linkend="pltcl">PL/Tcl</link>, |
| 170 | + <link linkend="plperl">PL/Perl</link>, and <link |
| 171 | + linkend="plpython">PL/Python</link>. |
| 172 | + </para> |
| 173 | + |
| 174 | + <para> |
| 175 | + In addition, there are a number of procedural languages that are developed |
| 176 | + and maintained outside the core <productname>PostgreSQL</productname> |
| 177 | + distribution. <xref linkend="pl-language-table"> lists some of these |
| 178 | + packages. Note that some of these projects may not be released under the same |
| 179 | + license as <productname>PostgreSQL</>. For more information on each |
| 180 | + procedural language, including licensing information, refer to its website |
| 181 | + and documentation. |
| 182 | + </para> |
| 183 | + |
| 184 | + <table id="pl-language-table"> |
| 185 | + <title>Externally Maintained Procedural Languages</title> |
136 | 186 |
|
| 187 | + <tgroup cols="3"> |
| 188 | + <thead> |
| 189 | + <row> |
| 190 | + <entry>Name</entry> |
| 191 | + <entry>Language</entry> |
| 192 | + <entry>Website</entry> |
| 193 | + </row> |
| 194 | + </thead> |
| 195 | + |
| 196 | + <tbody> |
| 197 | + <row> |
| 198 | + <entry>PL/Java</entry> |
| 199 | + <entry>Java</entry> |
| 200 | + <entry><ulink url="http://pljava.projects.postgresql.org/">http://pljava.projects.postgresql.org/</ulink></entry> |
| 201 | + </row> |
| 202 | + |
| 203 | + <row> |
| 204 | + <entry>PL/PHP</entry> |
| 205 | + <entry>PHP</entry> |
| 206 | + <entry><ulink url="http://www.commandprompt.com/community/plphp/">http://www.commandprompt.com/community/plphp/</ulink></entry> |
| 207 | + </row> |
| 208 | + |
| 209 | + <row> |
| 210 | + <entry>PL/Py</entry> |
| 211 | + <entry>Python</entry> |
| 212 | + <entry><ulink url="http://python.projects.postgresql.org/">http://python.projects.postgresql.org/</ulink></entry> |
| 213 | + </row> |
| 214 | + |
| 215 | + <row> |
| 216 | + <entry>PL/R</entry> |
| 217 | + <entry>R</entry> |
| 218 | + <entry><ulink url="http://www.joeconway.com/plr/">http://www.joeconway.com/plr/</ulink></entry> |
| 219 | + </row> |
| 220 | + |
| 221 | + <row> |
| 222 | + <entry>PL/Ruby</entry> |
| 223 | + <entry>Ruby</entry> |
| 224 | + <entry><ulink url="http://raa.ruby-lang.org/project/pl-ruby/">http://raa.ruby-lang.org/project/pl-ruby/</ulink></entry> |
| 225 | + </row> |
| 226 | + |
| 227 | + <row> |
| 228 | + <entry>PL/Scheme</entry> |
| 229 | + <entry>Scheme</entry> |
| 230 | + <entry><ulink url="http://plscheme.projects.postgresql.org/">http://plscheme.projects.postgresql.org/</ulink></entry> |
| 231 | + </row> |
| 232 | + |
| 233 | + <row> |
| 234 | + <entry>PL/sh</entry> |
| 235 | + <entry>Unix shell</entry> |
| 236 | + <entry><ulink url="http://plsh.projects.postgresql.org/">http://plsh.projects.postgresql.org/</ulink></entry> |
| 237 | + </row> |
| 238 | + </tbody> |
| 239 | + </tgroup> |
| 240 | + </table> |
137 | 241 | </sect1> |
138 | 242 |
|
139 | 243 | <sect1 id="external-extensions"> |
|
144 | 248 | </indexterm> |
145 | 249 |
|
146 | 250 | <para> |
147 | | - <productname>PostgreSQL</>was designedfrom the start to be |
148 | | -extensible. Forthis reason, extensions loaded into the database can |
149 | | -function justlike features that are packaged with the database. The |
| 251 | + <productname>PostgreSQL</>is designedto be easily extensible. For |
| 252 | + this reason, extensions loaded into the database can function just |
| 253 | + like features that are packaged with the database. The |
150 | 254 | <filename>contrib/</> directory shipped with the source code |
151 | 255 | contains a large number of extensions. The <filename>README</> file |
152 | | - in that directory contains a summary. They include conversion tools, |
153 | | - full-text indexing, <acronym>XML</> tools, and additional data types |
154 | | - and indexing methods. Other extensions are developed independently, |
155 | | - like <application>PostGIS</>. Even <application>PostgreSQL</> |
156 | | - replication solutions are developed externally. For example, |
157 | | - <application>Slony-I</> is a popular master/slave replication solution |
158 | | - that is developed independently from the core project. |
| 256 | + in that directory contains a summary. They include conversion |
| 257 | + tools, full-text indexing, <acronym>XML</> tools, and additional |
| 258 | + data types and indexing methods. Other extensions are developed |
| 259 | + independently, like <application><ulink |
| 260 | + url="http://www.postgis.org/">PostGIS</ulink></>. Even |
| 261 | + <productname>PostgreSQL</> replication solutions are developed |
| 262 | + externally. For example, <application> <ulink |
| 263 | + url="http://www.slony.info">Slony-I</ulink></> is a popular |
| 264 | + master/slave replication solution that is developed independently |
| 265 | + from the core project. |
159 | 266 | </para> |
160 | 267 |
|
161 | 268 | <para> |
162 | 269 | There are several administration tools available for |
163 | 270 | <productname>PostgreSQL</>. The most popular is |
164 | 271 | <application><ulink url="http://www.pgadmin.org/">pgAdmin III</ulink></>, |
165 | 272 | and there are several commercially available ones as well. |
166 | | - </para> |
167 | | - |
| 273 | + </para> |
168 | 274 | </sect1> |
169 | 275 | </appendix> |