[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