On Wed, Aug 31, 2016 at 2:28 PM, Michael Bieri <mibieri@gmail.com> wrote:
Hi all

There are several ways on how to use C/C++ code from Python with NumPy, as given in http://docs.scipy.org/doc/numpy/user/c-info.html . Furthermore, there's at least pybind11. 

I'm not quite sure which approach is state-of-the-art as of 2016. How would you do it if you had to make a C/C++ library available in Python right now?

In my case, I have a C library with some scientific functions on matrices and vectors. You will typically call a few functions to configure the computation, then hand over some pointers to existing buffers containing vector data, then start the computation, and finally read back the data. The library also can use MPI to parallelize.

I have been delighted with Cython for this purpose.  Great integration with NumPy (you can access numpy arrays directly as C arrays), very python like syntax and amazing performance.

Good luck,