[C++-sig] A few questions on Boost.Python
Wichert Akkerman
wichert at wiggy.net
Tue Jan 24 09:47:41 CET 2012
On 01/23/2012 09:03 PM, Jim Bosch wrote:
> On 01/23/2012 02:35 PM, Bo Jensen wrote:
>> Hi,
>>
>> I have been looking into the best way for me to make a python wrapper
>> for a
>> C++ library. Boost.Python looks nice and seem to fit my needs, but I
>> have a
>> few questions before I dig in deep and do the implementation.
>>
>> What I want to do :
>>
>> I have a very thin header only C++ library, which is an extension on
>> top of
>> a c library i.e some of the C++ functions call functions in a C
>> dll/so. So
>> the C++ library only provides a nice way of using the C library with
>> operators and overloading etc. For this library I want to make an python
>> interface, which only should mimic the C++ classes and functions i.e
>> there
>> will be a 1:1 mapping.
>>
>> Questions :
>>
>> 1) Would Boost.Python be suited for such a task ?
>>
>
> Almost definitely. For this sort of task most people use
> Boost.Python, SWIG, or the raw Python C-API.
>
> Boost.Python is my favorite, and probably the favorite of most people
> on this list. The Python C-API (what I think you're calling "cython")
> is a lot less automatic; you'll find yourself writing a lot more code,
> and doing a lot more memory management. SWIG can be much more
> automatic if your C/C++ interface is sufficiently simple, but it's
> generally less safe w.r.t. memory management, it chokes on complex
> C++, and I find it much more difficult to debug.
Cython is something entirely different: see http://cython.org/ . If you
are basically wrapping a C library I suspect using cython is simpler and
faster. If C++ support in cython is further improved it will be a
serious alternative to boost.python.
Regards,
Wichert.
More information about the Cplusplus-sig
mailing list