Interfacing with Native code from Python

There are many ways to integrate with native code (i.e. C/C++ libraries) from python; ctypes, cython/pyrex, swig, native python modules, etc. Each method has different trade-offs in terms of performance, maintainability and extensibility. I will discus these trade-offs and give strategies for wrapping object orientated and performance critical native code.