title: Exposing a C++ API to Python
body: <p>I'm currently working on a project were I had to wrap the C++ classes with Python to be able to script the program. So my specific experience also involved embedding the Python interpreter in our program.</p>
  
  <p>The alternatives I tried were:</p>
  
  <ul>
  <li><p>Boost.Python</p>
  
  <p>I liked the cleaner API produced by Boost.Python, but the fact that it would have required that users install an additional dependency made us switch to SWIG.</p></li>
  <li><p>SWIG</p>
  
  <p>SWIG's main advantage for us was that it doesn't require end users to install it to use the final program.</p></li>
  </ul>
  
  <p>What have you used to do this, and what has been your experience with it?</p>