blob: 384b9b35e31d5baf366f1772173ff729cac16256 [file] [log] [blame]
<html>
<head>
<title>Subversion API bindings</title>
</head>
<body>
<div class="app">
<h2>Subversion API bindings</h2>
<p>The <a
href="http://svnbook.red-bean.com/html-chunk/ch07.html#svn-ch-7-sect-1">layered
library-based architecture</a> of Subversion's canonical C language
implementation presents an easily hackable API around which to create
bindings for other languages. Existing bindings generally cover the
<a
href="http://svn.collab.net/svn-doxygen/svn__client_8h.html">Subversion
client API</a>.</p>
<ul>
<li><a href="#python">Python</a></li>
<li><a href="#java">Java</a></li>
<li><a href="#perl">Perl</a></li>
<li><a href="#ruby">Ruby</a></li>
</ul>
<p><a href="">"Version control with Subversion"</a> has some <a
href="http://svnbook.red-bean.com/html-chunk/ch07s02.html#svn-ch-7-sect-2.3">coverage
of bindings</a>, and a <a
href="http://svnbook.red-bean.com/html-chunk/ape.html#svn-ap-e-sect-1">list
of full blown client applications</a>.</p>
<a name="python"></a>
<h3>Python</h3>
<dl>
<dt>Status</dt>
<dd>Mostly complete and maintained</dd>
<dt>Type</dt>
<dd>SWIG-based, no Python-friendly veneer</dd>
<dt>Location</dt>
<dd>http://svn.collab.net/repos/svn/trunk/subversion/bindings/swig/python/</dd>
</dl>
<a name="java"></a>
<h3>Java</h3>
<h4>Subversion javahl bindings</h4>
<dl>
<dt>Status</dt>
<dd>Complete, not up to date with latest version of SVN</dd>
<dt>Type</dt>
<dd>Hand-coded JNI in C++, Java-friendly veneer</dd>
<dt>Notes</dt>
<dd>Auto-loads native libaries. Originally from the <a
href="http://svnup.tigris.org/">svnup project</a>, a plug-in for
the IDEA IDE.</dd>
<dt>Location</dt>
<dd>http://svn.collab.net/repos/svn/trunk/subversion/bindings/java/javahl/</dd>
</dl>
<h4>Subversion SWIG-Java bindings</h4>
<dl>
<dt>Status</dt>
<dd>Incomplete</dd>
<dt>Type</dt>
<dd>SWIG-based, Java-friendly veneer</dd>
<dt>Notes</dt>
<dd>Auto-loads native libaries.</dt>
<dt>Location</dt>
<dd>http://svn.collab.net/repos/svn/trunk/subversion/bindings/swig/perl/</dd>
</dl>
<h4>Alternate Computing jsvn bindings</h4>
<dl>
<dt>Status</dt>
<dd>Mostly complete and up to date</dd>
<dt>Type</dt>
<dd>Command-line binary wrapper</dd>
<dt>Notes</dt>
<dd>Includes GUI and Ant tasks. Requires installation of the native
command-line client.</dd>
<dt>Location</dt>
<dd>http://jsvn.alternatecomputing.com/</dd>
</dl>
<a name="perl"></a>
<h3>Perl</h3>
<dl>
<dt>Status</dt>
<dd>Mostly complete?</dd>
<dt>Type</dt>
<dd>SWIG-based</dd>
<dt>Location</dt>
<dd>http://svn.collab.net/repos/svn/trunk/subversion/bindings/swig/perl/</dd>
</dl>
<a name="ruby"></a>
<h3>Ruby</h3>
<dl>
<dt>Status</dt>
<dd>Removed</dd>
<dt>Type</dt>
<dd>Hand coded</dd>
<dt>Notes</dt>
<dd>Due to age, would require significant effort to resurrect.</dd>
<dt>Location</dt>
<dd>http://svn.collab.net/repos/svn/trunk/subversion/bindings/ruby/</dd>
</dl>
<hr />
<p><small>$LastChangedDate$</small></p>
</div>
</body>
</html>