SWIG is an open source, completely free, multiplatform and portable interface compiler, a C/C++ command-line program that allows developers to connect their applications with various other scripting/programming languages.
It has been designed from the ground up to be used for capturing C/C++ header files’ declarations and generate the wrapper code required by the scripting languages for accessing the underlying C/C++ code.
Features at a glance
Key features include class and structure extension, exception handling, memory management, template instantiation, ambiguity resolution, file import and cross-module linking, extended SWIG macro handling, extensive diagnostics, as well as code inclusion.
SWIG supports several popular programming languages, including Allegro CL, C#, CFFI, CLISP, Chicken, Guile, Java, Lua, Modula-3, Mzscheme, OCAML, Perl, PHP, Python, R, Ruby, Tcl, and UFFI.
Additionally, SWIG provides a full C pre-processor that contains features like macro expansion, automatic wrapping of #define statements as constants, support for customized type conversion and marshaling, helper function support, as well as support for C99.
Can be used to generate numerous wrappers
A wide range of command-line options are implemented, allowing you to interact with SWIG’s built-in functionality. These and several usage examples can be viewed at a glance by running the ‘swig --help’ command in any terminal emulator application.
Runs on Linux, Mac and Windows
SWIG runs on all GNU/Linux distributions, as well as on the Microsoft Windows and Mac OS X operating systems, supporting 64-bit and 32-bit flavors. It is written in the C++ and C programming languages. Detailed installation instructions are provided on the project’s homepage (see link below).