Skip to content
No description or website provided.
Python C Other
#4 Compare This branch is 72 commits ahead, 2 commits behind enthought:master.
Latest commit 5387ade Jun 20, 2013 @geggo Merge pull request #3 from lucidfrontier45/master
merged pull request #3, import error fixed
Failed to load latest commit information.
tests added some test cases Mar 17, 2013
README.rst Add tool to create a Cython pxd file Mar 21, 2013


libclang based frontend for cwrap

cwrap, written by Chris Colbert, is a tool for the automatic generation of Cython declarations (pxd files) from C/C++ header files.

This fork adds another frontend, using libclang of the llvm-project for parsing C/C++.


  • the libclang library (, libclang.dylib or libclang.dll), contained in llvm binary distribution needs to be somewhere on the binary search path.
  • if your header files contain const definitions, you need a Cython > 0.18 in order to be able to compile it

Getting started

  • checkout
  • try it (in cwrap):
python tests/test.h
  • have a look at the generated pxd file
less tests/result_clang/_test.pxd
  • Additional testing (this command needs Python 2.7):
python -m unittest discover -s test

Current status

For C headers the libclang frontend produces useful results.

Rudimentary support for parsing C++ headers is provided. Known problems exist with supporting following C++ features:

  • class template (libclang misses support)
  • nested class definitions
  • default arguments
  • namespaces

Ideas for improvements

  • tests, tests, tests.
  • provide a way to configure which declarations get exposed (especially for nested includes), e.g., no definitions from system includes, give list of header files, ...
  • libclang enables parsing of comments, supporting doxygen syntax. automatically generate documentation comments. does cython support this for cdef extern?


Chris Colbert (original cwrap), Gregor Thalhammer and Volker Mische (libclang frontend)

Something went wrong with that request. Please try again.