SWIG image
Home Development Mailing Lists Bugs and Patches
Information
What is SWIG?
Compatibility
Features
Tutorial
Documentation
News
The Bleeding Edge
History
Guilty Parties
Projects
Legal Department
Links
Download
SwigWiki
Donate
Affiliations
Software Freedom Conservancy
Our Generous Host
Get SWIG at SourceForge.net. Fast, secure and Free Open Source software downloads
Exits
AllegroCL
C# - Mono
C# - MS .NET
CFFI
CHICKEN
CLISP
D
Go language
Guile
Java
Lua
MzScheme/Racket
Ocaml
Octave
Perl
PHP
Python
R
Ruby
Tcl/Tk

Welcome to SWIG

[ Chinese ]

SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. SWIG is used with different types of target languages including common scripting languages such as Perl, PHP, Python, Tcl and Ruby. The list of supported languages also includes non-scripting languages such as C#, Common Lisp (CLISP, Allegro CL, CFFI, UFFI), D, Go language, Java including Android, Lua, Modula-3, OCAML, Octave and R. Also several interpreted and compiled Scheme implementations (Guile, MzScheme/Racket, 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 is typically used to parse C/C++ interfaces and generate the 'glue code' required for the above target languages to call into the C/C++ code. SWIG can also export its parse tree in the form of XML and Lisp s-expressions. SWIG is free software and the code that SWIG generates is compatible with both commercial and non-commercial projects.

Recent News SWIG RSS Feed

2012/04/30 - SWIG-2.0.6 released
This release fixes a bug in SWIG-2.0.5, please use SWIG-2.0.6 instead.

SWIG-2.0.6 summary:
- Regression fix for Python STL wrappers on some systems.

2012/04/24 - Summer of Code 2012 projects
Google has announced the list of accepted students for the Google Summer of Code program. SWIG was given 5 slots this year the SWIG developer community has chosen the following projects which will be worked on over the next 4 months:


"SWIG's Scilab 6.0 Backend" - Wolfgang Frisch
"Enhance Objective C support" - Swati Sharma
"Get the C backend in shape and into trunk" - Leif Middelschulte
"New module for Javascript" - Neha Narang
"Source Code Documentation Comments" - Dmitry Kabak

Congratulations to Wolfgang, Swati, Leif, Neha and Dmitry.

An abstract for every project is available here: http://google-melange.appspot.com/org/home/google/gsoc2012/swig

Anyone interested in these projects, is welcome to drop by on our IRC channel - #swig-gsoc on irc.freenode.net
or follow the development of them on the swig-devel mailing list - http://www.swig.org/mail.html .

2012/04/19 - SWIG-2.0.5 released
SWIG-2.0.5 summary:
- Official Android support added including documentation and examples.
- Improvements involving templates:
1) Various fixes with templates and typedef types.
2) Some template lookup problems fixed.
3) Templated type fixes to use correct typemaps.
- Autodoc documentation generation improvements.
- Python STL container wrappers improvements including addition of
stepped slicing.
- Approximately 70 fixes and minor enhancements for the following
target languages: AllegroCL, C#, D, Go, Java, Lua, Ocaml, Octave,
Perl, PHP, Python, R, Ruby, Tcl, Xml.

2012/03/24 - SWIG in Google Summer of Code 2012
SWIG has been accepted on the Google Summer of Code program for the third time. This is an opportunity for budding open source programmers to get paid for coding. If you are a student and interested please take a look at http://codewrapper.com/wiki/index.php?title=SWIG_GSoC_2012_ideas_page and http://www.google-melange.com/gsoc/homepage/google/gsoc2012 for further details. Applications must be in by 6 April 2012.

2011/05/21 - SWIG-2.0.4 released
SWIG-2.0.4 release summary:
- This is mainly a Python oriented release including support for Python
built-in types for superior performance with the new -builtin option.
The -builtin option is especially suitable for performance-critical
libraries and applications that call wrapped methods repeatedly.
See the python-specific chapter of the SWIG manual for more info.
- Python 3.2 support has also been added and various Python bugs have
been fixed.
- Octave 3.4 support has also been added.
- There are also the usual minor generic improvements, as well as bug
fixes and enhancements for D, Guile, Lua, Octave, Perl and Tcl.

2011/03/29 - SWIG-2.0.3 released
SWIG-2.0.3 has been released. This is a bug fix release including a couple of fixes for regressions in the 2.0 series.

2011/02/20 - SWIG-2.0.2 released
SWIG-2.0.2 has been released and includes the following changes:

- Support for the D language has been added.
- Various bug fixes and minor enhancements.
- Bug fixes particular to the Clisp, C#, Go, MzScheme, Ocaml, PHP, R, Ruby target languages.

2010/10/04 - SWIG-2.0.1 released
SWIG-2.0.1 has been released and includes the following changes:

- Support for the Go language has been added.
- New regular expression (regex) encoder for renaming symbols based on the Perl Compatible Regular Expressions (PCRE) library - http://pcre.org .
- Numerous fixes in reporting file and line numbers in error and warning messages.
- Various bug fixes and improvements in the C#, Lua, Perl, PHP, Ruby and Python language modules.

2010/06/03 - SWIG-2.0.0 released
SWIG-2.0.0 has been released. The following are the main changes:

- License changes, see LICENSE file and http://www.swig.org/legal.html .
- Much better nested class/struct support.
- Much improved template partial specialization and explicit specialization handling.
- Namespace support improved with the 'nspace' feature where namespaces can be automatically translated into Java packages or C# namespaces.
- Improved typemap and symbol table debugging.
- Numerous subtle typemap matching rule changes when using the default (SWIGTYPE) type. These now work much like C++ class template partial specialization matching.
- Other small enhancements for typemaps. Typemap fragments are also now official and documented.
- Warning and error display refinements.
- Wrapping of shared_ptr is improved and documented now.
- Numerous C++ unary scope operator (::) fixes.
- Better support for boolean expressions.
- Various bug fixes and improvements in the Allegrocl, C#, Java, Lua, Octave, PHP, Python, R, Ruby and XML modules.

2010/04/20 - SWIG joins the Software Freedom Conservancy
The Software Freedom Conservancy has just announced that SWIG has been accepted as a member of the Conservancy - http://sfconservancy.org/news/2010/apr/20/swig-joins/ . Being part of the Conservancy and all the good work it does for free and open source software is great news for SWIG. The Conservancy provides many benefits such as a formal legal structure and will help ensure the vitality of SWIG as the Conservancy is able to handle donations to the SWIG project. Please visit our new http://www.swig.org/donate.html donations page.

More news


Feedback and questions concerning this site should be posted to the swig-devel mailing list.

Last modified : Thu Apr 19 19:57:26 2012