*** Welcome to piglix ***

SWIG

SWIG
Original author(s) Dave Beazley
Developer(s) SWIG developers
Initial release February 1996; 21 years ago (1996-02)
Stable release
3.0.9 / May 29, 2016; 8 months ago (2016-05-29)
Repository github.com/swig/swig
Written in C, C++
Operating system Cross-platform
License GPL
Website swig.org

The Simplified Wrapper and Interface Generator (SWIG) is an open-source software tool used to connect computer programs or libraries written in C or C++ with scripting languages such as Lua, Perl, PHP, Python, R, Ruby, Tcl, and other languages like C#, Java, JavaScript, Go, Modula-3, OCaml, Octave, Scilab and Scheme. Output can also be in the form of XML or Lisp S-expressions.

The aim is to allow the calling of native functions (that were written in C or C++) by other programming languages, passing complex data types to those functions, keeping memory from being inappropriately freed, inheriting object classes across languages, etc. The programmer writes an interface file containing a list of C/C++ functions to be made visible to an interpreter. SWIG will compile the interface file and generate code in regular C/C++ and the target programming language. SWIG will generate conversion code for functions with simple arguments; conversion code for complex types of arguments must be written by the programmer. The SWIG tool creates source code that provides the glue between C/C++ and the target language. Depending on the language, this glue comes in two forms:


...
Wikipedia

...