SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. SWIG is primarily used with common scripting languages such as Perl, PHP, Python, Tcl/Tk, and Ruby, however the list of supported languages also includes non-scripting languages such as C#, Common Lisp (CLISP, Allegro CL, UFFI), Java, Modula-3, OCAML, Octave, and R. Also several interpreted and compiled Scheme implementations (Guile, MzScheme, Chicken) are supported. SWIG is most commonly used to create high-level interpreted or compiled programming environments, user interfaces, and as a tool for testing and prototyping C/C++ software. SWIG can also export its parse tree in the form of XML and Lisp s-expressions.
| Tags | Software Development Compilers |
|---|---|
| Licenses | BSD Revised |
| Implementation | C C++ Perl PHP Python Tcl Ruby Java Lua C# Octave R |
Recent releases


Changes: This release adds small feature enhancements, improved C# std::vector wrappers, and bugfixes (mainly for Python, but also for Perl, MzScheme, CFFI, Allegrocl, and Ruby).


Changes: shared_ptr support was added for Java and C#. STL support for Ruby was enhanced. Windows support for R was added. A long-standing memory leak in the PHP module was fixed. Numerous fixes and minor enhancements were made for Allegrocl, C#, cffi, Chicken, Guile, Java, Lua, Ocaml, Perl, PHP, Python, Ruby, and Tcl. Warning support was improved.


Changes: Major features and bugfixes.


Changes: A bug in anonymous typedef structures which was leading to strange behavior was fixed.


Changes: New language modules: Lua, CLISP, and Common Lisp with UFFI. A big overhaul to the PHP module. A change to the way 'extern' is handled. Minor bugfixes specific to the C#, Java, Modula3, Ocaml, Allegro CL, XML, Lisp s-expressions, Tcl, Ruby, and Python modules. Other minor improvements and bugfixes.