CS-SI / SIRIUS

Sirius - Fast and simple to plug-in C++ resampling library that is taking advantage of the Fourier Transform
https://cs-si.github.io/SIRIUS/html/Sirius.html
GNU General Public License v3.0
6 stars 5 forks source link

Provide a python interface #31

Open savmickael opened 5 years ago

dumasl commented 5 years ago

Before it is too late we should argue around the best way too do it and maybe have a look at what @LucHermitte suggested (http://pybind11.readthedocs.io/en/master/) ? I believe we might have already started with Swing which per @rkanavath would do the trick. Shall we change our mind ?

rkanavath commented 5 years ago

@dumasl pybind11 seems close to boost::python and it says so in their docs. For sake of discussion, I simply copy part of it.

The main issue with Boost.Python—and the reason for creating such a similar project—is Boost. Boost is an enormously large and complex suite of utility libraries that works with almost every C++ compiler in existence.

You can read full page here: http://pybind11.readthedocs.io/en/master/intro.html.

swig is an alternative tool like boost::python but with a different goals. And obviously, both have its own advantages and disadvantages. @LucHermitte , can you brief us on any special benefits of pybind11. ?

LucHermitte commented 5 years ago

I guess you've already seen this: https://community.lsst.org/t/using-pybind11-instead-of-swig-to-wrap-c-code/1096

rkanavath commented 5 years ago

@LucHermitte , I am not following any of lsst discussion. It seems pybind11 is interesting work. I guess writing wrapper code for pybind11 is not a big issue for sirius which is their main argument against swig. Although swig wrapping are not that bad in dealing with python except it doesn't employ modern C++ . so I am leaning towards pybind11 but will have a closer look in coming days.