AutoWIG: Automatic Generation of Python Bindings for C++ Libraries
This solves the problem of efficient library wrapping for developers working with scientific computing, though it appears incremental compared to existing semi-automatic solutions.
The authors tackled the cumbersome and time-consuming process of wrapping large C++ libraries into high-level languages like Python by introducing AutoWIG, an automatic tool that uses LLVM/Clang and Mako templating to handle complex libraries with thousands of classes or modern meta-programming constructs.
Most of Python and R scientific packages incorporate compiled scientific libraries to speed up the code and reuse legacy libraries. While several semi-automatic solutions exist to wrap these compiled libraries, the process of wrapping a large library is cumbersome and time consuming. In this paper, we introduce AutoWIG, a Python package that wraps automatically compiled libraries into high-level languages using LLVM/Clang technologies and the Mako templating engine. Our approach is automatic, extensible, and applies to complex C++ libraries, composed of thousands of classes or incorporating modern meta-programming constructs.