SWIG image
Home Development Mailing Lists Bugs and Patches
Information
What is SWIG?
Compatibility
Features
Tutorial
Documentation
The Bleeding Edge
History
Subversion
Guilty Parties
Projects
Legal Department
Links
Download
SwigWiki
Exits
AllegroCL
C# - Mono
C# - MS .NET
CFFI
CHICKEN
CLISP
Guile
Java
Lua
MzScheme
Ocaml
Octave
Perl
PHP
Python
R
Ruby
Tcl/Tk
Our Generous Host
SourceForge logo

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 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), Java, Lua, 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. SWIG may be freely used, distributed, and modified for commercial and non-commercial use.

News

2008/04/21 The students accepted into the Google Summer of Code have now been announced. SWIG has managed to get four slots and we have chosen the following four projects/students:

  • "SWIG's Python 3.0 Backend" - Haoyu Bai tutored by Richard Boulton
  • "C target language backend" - Maciej Drwal tutored by William Fulton
  • "Comment 'Translator' for SWIG" - Cheryl Marie Foil tutored by Olly Betts
  • "Support for generating COM wrappers" - Jan Jezabek tutored by Ian Appru
The competition was tough and although it was difficult choosing the projects, these four were our strongest, so congratulations and welcome to Haoyu, Jan, Cheryl and Maciej. Further details on the Google SWIG page.

2008/04/07 SWIG-1.3.35 has been released. This release adds Octave to the list of languages modules that SWIG can generate wrappers for. This release also contains a few bug fixes and regression fixes from the previous release.

2008/03/18 SWIG is one of 175 open source organizations that have been accepted onto the Google Summer of Code (GSoC) 2008. GSoC is a program to pay students and in the process benefit open source. Students interested in submitting an application to work on SWIG are invited to look at the ideas page and then discuss them on the mailing lists before submitting a project proposal.

2008/02/27 SWIG-1.3.34 has been released. This release adds shared_ptr support for Python and fixes a number of various other bugs.

2007/11/23 SWIG-1.3.33 has been released and fixes a few regressions introduced into version 1.3.32.

2007/11/15 SWIG-1.3.32 has been released. This release contains over a hundred bug fixes and improvements to most language modules.

2006/12/14 SWIG has now moved to using Subversion (SVN) for revision control. See the new SVN instructions for details of how to access our SVN repository.

2006/11/20 SWIG-1.3.31 has been released. This fixes a Python regression in the last version.

2006/11/13 SWIG-1.3.30 has been released. This release adds support for R and directors for C# amongst a round of bug fixes.

2006/05/16 Sourceforge has changed the way source code can be accessed from cvs. See updated cvs instructions.

2006/03/21 SWIG-1.3.29 has been released. This is a bug fix release.

2006/02/11 SWIG-1.3.28 has been released. Many new features, improvements and bug fixes are in this release. New language support has also been added for Common Lisp with CFFI.

2006/01/12 SWIG has made it into the Wikipedia.

2005/12/12 CodeGuru features an article on SWIG, Expose Your C/C++ Program's Internal API with a Quick SWIG.

2005/10/29 The swig and swig-dev mailing lists hosted at the University of Chicago are being shut down. Please use the new swig-user and swig-devel lists at SourceForge, details on the mailing list page.

2005/10/15 SWIG-1.3.27 has been released to fix a major bug in previous release.

2005/10/09 SWIG-1.3.26 has been released. Lua, CLISP and Common Lisp with UFFI join the list of supported languages. The PHP4 module has been given a good work over after some bitrot. Various other minor bug fixes and improvements are all also in this release.

2005/06/11 SWIG-1.3.25 has been released. This largely contains bug fixes and enhancements to the C# module and the runtime type system.

2005/03/25 Greg Stein gives a keynote speech about Google's use of Python and SWIG at the PyCon 2005 conference.

2004/12/14 SWIG-1.3.24 has been released. This is mainly a bug fix release.

2004/11/11 SWIG-1.3.23 has been released. This release contains additional C++ support in the areas of templates and namespaces. Java and C# are added to the list of languages that can create wrappers taking advantage of C++ default arguments. Many other minor bug fixes and enhancements are also included.

2004/09/04 SWIG-1.3.22 has been released. This release continues the ongoing improvements and bug fixes in SWIG. The major areas of improvement are in exception handling, enums and the STL. New languages with this release are Allegro CL and Modula-3. The documentation has been revamped and it is now available in the following formats: single html page, multiple html pages and a pdf document.

2004/01/11 SWIG-1.3.21 has been released. This is a minor bug fix release.

2003/12/17 SWIG-1.3.20 has been released. This release includes a large number of enhancements including improved C++ support, directors, contracts, and more.

2003/12/17 An article by Phil Tomson about SWIG and Ruby appears in the January 2004 issue of C/C++ Users Journal.

2003/10/27 The Code Generation Network undertakes an interview talking about SWIG.

2003/03/28 SWIG-1.3.19 has been released. This release fixes a small number of critical bugs in 1.3.18.

2003/03/23 SWIG-1.3.18 has been released. This release includes a number of new language modules (C# and Chicken), new features, an improved build environment, and a lot of minor bug fixes.

2002/11/27 An article about SWIG appears in C Magazine (Japanese).

2002/11/27 Bernard Desgraupes has created a Macintosh version of SWIG-1.3.17. Download here.

2002/11/22 SWIG-1.3.17 has been released. This is mostly a bug-fix release for 1.3.16.

2002/10/14 SWIG-1.3.16 has been released. This is mostly a bug-fix release for 1.3.15.

2002/10/01 Mitchell Charity has created Inline::SWIG for Perl. Check it out.

2002/09/10 SWIG-1.3.15 has been released. This is mostly a bug-fix release for 1.3.14 that resolves a number of issues with template and namespace support. Improvements to exception handling and overloading are also included.

2002/08/12 SWIG-1.3.14 has been released. SWIG development continues to break new ground--this release features full support for overloaded methods and functions, C++ smart pointers, and more. It also includes new language modules for Ocaml and XML as well as a variety of enhancements to existing modules.

2002/07/19 Shibukawa Yoshiki is working on a Japanese translation of the SWIG documentation. Check out swig-jp.dyndns.org.

2002/06/17 SWIG-1.3.13 has been released. This is a more stable version of SWIG-1.3.12. If you downloaded SWIG-1.3.12, you should upgrade.

2002/06/02 Updated documentation for SWIG-1.3.12 is online.

2002/06/02 SWIG-1.3.12 has been released. This is the most capable SWIG release ever! New features include support for C++ namespaces, enhanced support for C++ templates, new library files, updated documentation, and a huge number of minor enhancements. See the download page for release notes and versions for Windows and Macintosh.

2002/04/03 Robert Tolbert has contributed PDF and postscript versions of the SWIG-1.3.11 documentation. Check it out.

2002/02/01 SWIG-1.3.11 has been released. This is a bug-fix release for SWIG-1.3.10. The release also includes substantial improvements to the Java and PHP modules. See the download page for release notes and versions for Windows and Macintosh.

2001/12/10 SWIG-1.3.10 has been released. This release features substantial changes to typemaps, exception handling, and SWIG's internals. New features also include support for C++ operator overloading and an experimental PHP module. Since this is an unstable release, first time users might want to consider using SWIG-1.3.9 or SWIG1.1p5 instead. See the download page for release notes and versions for Windows and Macintosh.

2001/12/10 The development documentation for SWIG-1.3 has been extensively updated. Not yet finished, but includes coverage of most new SWIG features including the redesigned typemap system and improved exception handling.

2001/10/31 Announcing the SwigWiki. Problems with SWIG? Look here for more information and to contribute.

2001/09/28 Development documentation for SWIG-1.3 is now online. This is a work in progress, but many new SWIG features are described.

2001/09/23 SWIG-1.3.9 has been released. This is a bug-fix release for 1.3.7 (described below). See the download page for release notes and versions for Windows and Macintosh. Note: SWIG-1.3.8 had a major parsing problem that snuck in at the last moment--don't use that version.

2001/09/03 SWIG-1.3.7 has been released. This is one of the most substantial enhancements to SWIG ever released. Includes a more powerful parser, support for C++ templates, simplified wrapping of overloaded methods and more! This release also includes some updated documentation on the new features. See the download page for release notes and versions for Windows and Macintosh.

2001/08/30 A precompiled executable of SWIG-1.3.6 for Windows (swigwin-1.3.6) is now available.

2001/07/16 A Macintosh port of SWIG-1.3.6 (macswig-1.3.6) has been contributed by Luigi Ballabio.

2001/07/10 SWIG-1.3.6 has been released. This release includes substantial changes to the language modules and greatly improved support for Guile, Java, and Ruby. Please see the download page for further details.

2000/10/14 A Macintosh port of SWIG1.3a5 (macswig1.3a5) has been contributed by Luigi Ballabio.

2000/09/22 SWIG1.3a5 has been released. This release has too many changes to list here, but it fixes a lot of bugs in SWIG1.3a3 and SWIG1.3a4, includes new language modules for Ruby and Mzscheme, and has some new examples. Note: this is a somewhat unstable release and may not be suitable for first time users. Download SWIG-1.1 instead.


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

Last modified : Wed Apr 23 23:25:09 2008