Skip to content

StatisKit/AutoWIG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e68f0bd · Mar 18, 2020
Nov 17, 2017
May 7, 2019
Jul 25, 2019
Feb 8, 2019
Nov 8, 2017
Oct 17, 2016
Sep 6, 2017
Nov 17, 2017
Mar 18, 2020
Jan 26, 2019
Nov 17, 2017
Jan 17, 2019
Jan 26, 2019

Repository files navigation

AutoWIG: Automatic Wrapper and Interface Generator

High-level programming languages, such as Python and R, are popular among scientists. They are concise, readable, lead to rapid development cycles, but suffer from performance drawback compared to compiled language. However, these languages allow to interface C, C++ and Fortran code. In this way, most of the scientific packages incorporate compiled scientific libraries to both speed up the code and reuse legacy libraries. While several semi-automatic solutions and tools exist to wrap these compiled libraries, the process of wrapping a large library is cumbersome and time consuming. AutoWIG is a Python library that wraps automatically compiled libraries into high-level languages. Our approach consists in parsing C++ code using the LLVM/Clang technologies and generating the wrappers using the Mako templating engine. Our approach is automatic, extensible, and applies to very complex C++ libraries, composed of thousands of classes or incorporating modern meta-programming constructs.

Citation

If you use AutoWIG in a scientific publication, we would appreciate citations:

Fernique P, Pradal C. (2018) AutoWIG: automatic generation of python bindings for C++ libraries. PeerJ Computer Science 4:e149 https://doi.org/10.7717/peerj-cs.149

Examples

Examples written in the article are available a dedicated repository