<!-- $PostgreSQL: pgsql/doc/src/sgml/external-projects.sgml,v 1.11 2006/08/01 00:09:06 momjian Exp $ -->

 <appendix id="external-projects">
  <title>PgFoundry and 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 the <ulink url="http://www.pgfoundry.org/">PgFoundry</ulink>.
   <ulink url="http://www.pgfoundry.org/">PgFoundry</ulink> is built using the
   GForge software project and is similar to SourceForge in its feature set. If
   you have a PostgreSQL related Open Source project that you would like to 
   develop and need project management resources such as mailing lists, forums,
   bug tracking, and CVS, please feel free to create a new project.   
  </para>

  <para>
   Secondly, many <productname>PostgreSQL</productname>-related projects are
   still hosted at <ulink url="http://gborg.postgresql.org"><productname>GBorg</></ulink>. 
   GBorg is the original external community developer site, and while it is 
   currently closed to new projects in favor of PgFoundry, it still contains 
   many active and relevant projects. There are other popular <productname>PostgreSQL</productname> 
   related projects that are hosted independently as well at other community 
   sites such as <ulink url="http://www.sf.net">SourceForge</ulink>. You should 
   google if you don't find the project you are looking for.
  </para>

 <sect1 id="external-interfaces">
  <title>Externally Developed Interfaces</title>

  <indexterm>
   <primary>interfaces</primary>
  </indexterm>

  <para>
   <productname>PostgreSQL</productname> includes very few interfaces
   with the base distribution. <application>libpq</> is packaged because
   it is the primary dependecy of most interfaces available to PostgreSQL.
   We also package <application>ecpg</> because it is tied to the 
   server-side grammar. All other interfaces, such as PHP, Perl, Python,
   and Ruby, are external projects.
  </para>

  <para>
   Some of the more popular interfaces are:

   <variablelist>
    <varlistentry>
     <term>psqlODBC</term>
     <listitem>
      <para>
       This is the most common interface for <application>Windows</>
       applications. <ulink url="http://odbc.postgresql.org/">Website.</ulink>
      </para>
     </listitem>
    </varlistentry>

    <varlistentry>
     <term>ODBCng</term>
     <listitem>
      <para>
       Another ODBC driver for PostgreSQL. 
       <ulink url="http://projects.commandprompt.com/public/odbcng/">Website.</ulink>
      </para>
     </listitem>
    </varlistentry>

    <varlistentry>
     <term>pgjdbc</term>
     <listitem>
      <para>
       A <application>JDBC</> interface.
       <ulink url="http://jdbc.postgresql.org/">Website.</ulink>
      </para>
     </listitem>
    </varlistentry>

    <varlistentry>
     <term>Npgsql</term>
     <listitem>
      <para>
       <application>.Net</> interface for more recent <application>mono/C#</> applications.
       <ulink url="http://pgfoundry.org/projects/npgsql/">Website.</ulink>
      </para>
     </listitem>
    </varlistentry>

    <varlistentry>
     <term>libpqxx</term>
     <listitem>
      <para>
       A newer <application>C++</> interface.
       <ulink url="http://thaiopensource.org/development/libpqxx/">Website.</ulink>
      </para>
     </listitem>
    </varlistentry>

    <varlistentry>
     <term>DBD::Pg</term>
     <listitem>
      <para>
       A <application>Perl</> DBI driver for PostgreSQL.
       <ulink url="http://search.cpan.org/dist/DBD-Pg/">Website.</ulink>
      </para>
     </listitem>
    </varlistentry>

    <varlistentry>
     <term>pgtclng</term>
     <listitem>
      <para>
       A newer version of the <application>Tcl</> interface.
       <ulink url="http://gborg.postgresql.org/project/pgtclng/projdisplay.php">Website.</ulink>
      </para>
     </listitem>
    </varlistentry>

    <varlistentry>
     <term>Pyscopg</term>
     <listitem>
      <para>
       A <application>Python</> interface library that is DB API 2.0 compliant.
       <ulink url="http://www.initd.org/">Website.</ulink>
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
   </para>

 </sect1>
 
 <sect1 id="external-extensions">
 <title>Extensions</title>

  <indexterm>
   <primary>extensions</primary>
  </indexterm>

  <para>
   <productname>PostgreSQL</> was designed from the start to be
   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>PostGIS</>. Even <application>PostgreSQL</>
   replication solutions are developed externally. For example,
   <application>Slony-I</> is a popular master/slave 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>

<!-- Keep this comment at the end of the file
Local variables:
mode:sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->
