Thiago de Arruda edited this page Jun 2, 2016 · 4 revisions
Clone this wiki locally

Several people have created scripts to parse header files and automatically produce Cython bindings.


XDress is an automatic wrapper generator for C/C++ written in pure Python. Currently, xdress may generate Python bindings (via Cython) for C++ classes & functions and in-memory wrappers for C++ standard library containers (sets, vectors, maps). In the future, other tools and bindings will be supported.


This is a tool called cython-codegen or written by David Cournapeau - download it with git (a version control tool, apt-get install git):

git clone

It requires gcc_xml and codegenlib from ctypeslib (apt get install python-ctypeslib)

Related information:


Automatically generate bindings for fortran files:

cwrap (original version; requires gcc_xml) (fork which includes tests, documentation and requires libclang)


Script by Evan Buswell


Philip Herron's 2012 GSoC project, using GCC plugins to generate pxd files. Code at

Requires a recent version of gcc and gcc-python-plugin.


autowrap automatically generates python extension modules for wrapping C++ libraries based on annotated (commented) cython pxd files. Current features include wrapping of template classes, enums, free functions and static methods as well as converters from Python data types to (many) STL containers and back. Finally, also manually written Cython code can be incorporated for wrapping code.


Automatically generate pxd from C headers. It uses pycparser to parse the definitions, so the only requirement beyond python dependencies is a C preprocessor on PATH.