Введение

Упрощенный генератор оберток и интерфейсов (SWIG) — это инструмент разработки с открытым исходным кодом, предназначенный для связи компьютерных программ или библиотек, написанных на C или C++, с языками сценариев, такими как Lua, Perl, PHP, Python, R, Ruby, Tcl, а также с другими языковыми реализациями, включая C#, Java, JavaScript, Go, D, OCaml, Octave, Scilab и Scheme. Результатом работы также может быть XML.

История

SWIG написан на языках C и C++ и находится в открытом доступе с февраля 1996 года. Первоначальным автором и основным разработчиком был Дэвид М. Бизли, который разработал SWIG, работая аспирантом в Лос-Аламосской национальной лаборатории и Университете Юты, а также будучи преподавателем Чикагского университета. В настоящее время разработка поддерживается активной группой добровольцев под руководством Уильяма Фултона. SWIG распространяется под лицензией GNU General Public License.

Google Summer of Code (Гугл Лето кода)

SWIG был успешным участником Google Summer of Code в 2008, 2009 и 2012 годах. В 2008 году SWIG получил четыре места. Хаою Бай работал над Python 3.0 бэкендом SWIG летом, Ян Джезабек занимался поддержкой генерации COM-обёрток, Шерил Фоил работала над комментарием "Переводчик" для SWIG, а Мацей Друал – над C бэкендом. В 2009 году SWIG снова участвовал в Google Summer of Code. В этот раз в программе участвовали четыре студента. Баозенг Дин работал над модулем Scilab, Матевз Джековец – над функциями C++0x, Ашиш Шарма провёл лето, работая над модулем Objective C, а Миклош Вайна – над PHP-директорами. В 2012 году SWIG участвовал в Google Summer of Code. В этот раз четыре из пяти студентов успешно завершили свои проекты. Лейф Мидделсхулте работал над модулем целевого языка C, Свати Шарма улучшила модуль Objective C, Неха Наранг добавила новый модуль для JavaScript, а Дмитрий Кабак занимался документацией исходного кода и комментариями Doxygen.

Альтернативы

Для Python аналогичную функциональность предоставляют SIP, Pybind11 и библиотека Boost.python из Boost.