Simplified Wrapper and Interface Generator

Welcome to SWIG

[ Japanese ]

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, Ruby and PHP. The list of supported languages also includes non-scripting languages such as C#, Common Lisp (CLISP, Allegro CL, UFFI), Java, Modula-3 and OCAML. 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

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.