-*-text-*- ==> For instructions on how to get swig bindings working, read the INSTALL file in this directory. SVN HEADER -> SWIG MODULE ------------------------- Subversion has a bunch of include files, some which are interesting for wrapping with language bindings, and others which are simple type declarations and constants. Below is the table which maps each header to its disposition: INCLUDE SWIG MODULE NAME svn_auth.h _core (some symbols) svn_base64.h (1) svn_client.h _client svn_cmdline.h (2) svn_config.h _core (some symbols) svn_ctype.h (1) svn_dav.h (2) svn_delta.h _delta svn_error.h (2) svn_error_codes.h _core svn_fs.h _fs svn_hash.h (1) svn_io.h _core (only stream functions) svn_md5.h (1) svn_opt.h _core (some symbols) svn_path.h (1) svn_pools.h _core (only pool manipulation) svn_props.h _core (some symbols) svn_quoprint.h (1) svn_ra.h _ra svn_ra_svn.h (2) svn_repos.h _repos svn_sorts.h (1) svn_string.h (3) svn_subst.h (2) svn_test.h (2) svn_time.h _core (some symbols) svn_types.h (3) svn_utf.h (1) svn_version.h _core (some symbols) svn_wc.h _wc svn_xml.h (1) apr*.h (3) (1) It is assumed that the binding languages will provide this functionality separately. ### HELP: Java does not provide base-64 natively. Should we wrap ### SVN's with SWIG, or include a stand-alone ASF implementation ### (such as from Jakarta Commons Codec)? (2) No significant/interesting functionality to export. (3) A SWIG interface file exists, but only to export types used by other modules. No binding module is actually constructed from this header. NOTE: the bindings code is being developed using SWIG 1.3.19 or later. Earlier versions of SWIG will simply *not* work. SWIG MODULES ------------ We will produce a number of modules/classes, expecting the binding languages to organize these into a package, and present the Subversion libraries' API in a manner familiar to programmers of a given language. For instance, the Python bindings are handled as follows: svn.core svn.client svn.delta svn.fs svn.ra svn.repos svn.wc THUNK EDITORS ------------- "Thunk" is Windows programming term describing a "go between." Our SWIG bindings generally implement editors in C which delegate to the language-specific extension API (e.g. its C API for Python, JNI for Java, etc.). This transitional object implements a Subversion editor interface, allowing it to be passed between its native library code and the runtime of the language which the bindings were written for.