## Subversion API bindings

The layered library-based architecture 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 Subversion client API.

- Python
- Java
- Perl
- Ruby

"Version control with Subversion" has some coverage of bindings, and a list of full blown client applications.

### Python

Status
  Mostly complete and maintained
Type
  SWIG-based, no Python-friendly veneer
Location
  http://svn.collab.net/repos/svn/trunk/subversion/bindings/swig/python/

### Java

#### Subversion javahl bindings

Status
  Complete, not up to date with latest version of SVN
Type
  Hand-coded JNI in C++, Java-friendly veneer
Notes
  Auto-loads native libraries. Originally from the svnup project, a plug-in for the IDEA IDE.
Location
  http://svn.collab.net/repos/svn/trunk/subversion/bindings/java/javahl/

#### Subversion SWIG-Java bindings

Status
  Incomplete
Type
  SWIG-based, Java-friendly veneer
Notes
  Auto-loads native libraries.
Location
  http://svn.collab.net/repos/svn/trunk/subversion/bindings/swig/perl/

#### Alternate Computing jsvn bindings

Status
  Mostly complete and up to date
Type
  Command-line binary wrapper
Notes
  Includes GUI and Ant tasks. Requires installation of the native command-line client.
Location
  http://jsvn.alternatecomputing.com/

### Perl

Status
  Mostly complete?
Type
  SWIG-based
Location
  http://svn.collab.net/repos/svn/trunk/subversion/bindings/swig/perl/

### Ruby

Status
  Removed
Type
  Hand coded
Notes
  Due to age, would require significant effort to resurrect.
Location
  http://svn.collab.net/repos/svn/trunk/subversion/bindings/ruby/

$LastChangedDate: 2005-05-12 15:16:21 -0400 (Thu, 12 May 2005) $