...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
This is a partial list of projects using Boost.Python. If you are using Boost.Python as your Python/C++ binding solution, we'd be proud to list your project on this page. Just post a short description of your project and how Boost.Python helps you get the job done, and we'll add it to this page .
Tom Barket of Fortress writes:
We have a large C++ analytical library specialized for research in finance and economics, built for speed and mission critical stability. Yet Python offers us the flexibility to test out new ideas quickly and increase the productivity of our time versus working in C++. There are several key features which make Python stand out. Its elegance, stability, and breadth of resources on the web are all valuable, but the most important is its extensibility, due to its open source transparency. Boost.Python makes Python extensibility extremely simple and straightforward, yet preserves a great deal of power and control.
KDE Interactive Geometry is a high-school level educational tool, built for the KDE desktop. It is a nice tool to let students work with geometrical constructions. It is meant to be the most intuitive, yet featureful application of its kind.
Versions after 0.6.x (will) support objects built by the user himself in the Python language. The exporting of the relevant internal API's were done using Boost.Python, which made the process very easy.
Dan Nuffer writes:
I'm using Boost.Python to wrap the client API of OpenWBEM.This will make it easier to do rapid prototyping, testing, and scripting when developing management solutions that use WBEM.
Ben Young writes:
Boost.Python is used in an automated process to generate python bindings to our api which is exposed though multiple backends and frontends. This allows us to write quick tests and bespoke scripts to perform one off tasks without having to go through the full compilation cycle.
“The fourth game in the PC strategy series that has sold over five million copies, Sid Meier's Civilization IV is a bold step forward for the franchise, with spectacular new 3D graphics and all-new single and multiplayer content. Civilization IV will also set a new standard for user-modification, allowing gamers to create their own add-ons using Python and XML.Sid Meier's Civilization IV will be released for PC in late 2005. For more information please visit http://www.firaxis.com or write kgilmore@firaxis.com”
Boost.Python is used as the interface layer between the C++ game code and Python. Python is used for many purposes in the game, including map generation, interface screens, game events, tools, tutorials, etc. Most high-level game operations have been exposed to Python in order to give modders the power they need to customize the game.
-Mustafa Thamer, Civ4 Lead Programmer
Vega Strike has decided to base its scripting on python, using boost as the layer between the class hierarchy in python and the class hierarchy in C++. The result is a very flexible scripting system that treats units as native python classes when designing missions or writing AI's.
A large economic and planetary simulation is currently being run in the background in python and the results are returned back into C++ in the form of various factions' spaceships appearing near worlds that they are simulated to be near in python if the player is in the general neighborhood.
Before the web page came online, Paul F. Kunz wrote:
Don't have a web page for the project, but the organization's is http://www.slac.stanford.edu (the first web server site in America, I installed it).Which was just too cool a piece of trivia to omit.
IPLT is an image processing library and toolbox for the structural biology electron microscopy community. I would call it a budding/evolving project, since it is currently not in production stage, but rather under heavy development. Python is used as the main scripting/interaction level, but also for rapid prototyping, since the underlying C++ class library is pretty much fully exposed via boost.python (at least the high-level interface). The combined power of C++ and Python for this project turned out to be just awesome.
VPython is an extension for Python that makes it easy to create navigable 3D animations, which are generated as a side effect of computational code. VPython is used in education for various purposes, including teaching physics and programming, but it has also been used by research scientists to visualize systems or data in 3D.
Peter Bienstman writes:
Thanks for providing such a great tool!
The cctbx grew together with Boost.Python and is designed from the ground up as a hybrid Python/C++ system. With one minor exception, run-time polymorphism is completely handled by Python. C++ compile-time polymorphism is used to implement performance critical algorithms. The Python and C++ layers are seamlessly integrated using Boost.Python.
The SourceForge cctbx project is organized in modules to facilitate use in non-crystallographic applications. The scitbx module implements a general purpose array family for scientific applications and pure C++ ports of FFTPACK and the L-BFGS quasi-Newton minimizer.
Pere Mato Vila writes:
We are using Boost.Python to provide scripting/interactive capability to our framework. We have a module called "GaudiPython" implemented using Boost.Python that allows the interaction with any framework service or algorithm from python. RootPython also uses Boost.Python to provide a generic "gateway" between the ROOT framework and pythonBoost.Python is great. We managed very quickly to interface our framework to python, which is great language. We are trying to facilitate to our physicists (end-users) a rapid analysis application development environment based on python. For that, Boost.Python plays and essential role.
Bruno da Silva de Oliveira writes:
Recently we moved our work from working exclusively with C++ to an hybrid-language approach, using Python and C++, with Boost.Python providing the layer between the two. The results are great so far!
Two projects have been developed so far with this technology:
Simba provides 3D visualization of geological formations gattered from the simulation of the evolution of oil systems, allowing the user to analyse various aspects of the simulation, like deformation, pressure and fluids, along the time of the simulation.
Aero aims to construct a CFD with brazilian technology, which involves various companies and universities. ESSS is responsible for various of the application modules, including GUI and post-processing of results.
Michael Brickenstein writes:
The core of PolyBoRi is a C++ library, which provides high-level data types for Boolean polynomials and monomials, exponent vectors, as well as for the underlying polynomial rings and subsets of the powerset of the Boolean variables. As a unique approach, binary decision diagrams are used as internal storage type for polynomial structures. On top of this C++-library we provide a Python interface. This allows parsing of complex polynomial systems, as well as sophisticated and extendable strategies for Gröbner basis computation. Boost.Python has helped us to create this interface in a very clean way.
Ger van Diepen writes:
Pyrap is the python interface to the Radio-Astronomical Package casacore (casacore.googlecode.com). Astronomers love pyrap because it makes it easily possible to get their data (observed with radio-astronomical telescopes like LOFAR, ASKAP, and eVLA) in numpy arrays and do basic data inspection and manipulation using the many python packages that are available.
Boost.Python made it quite easily possible to create converters for the various data types, also for numpy arrays and individual elements of a numpy array. It's nice they work fully recursively. Mapping C++ functions to Python was straightforward.
Fusion is a library that supports implementing protocols in C++ for use with Twisted, allowing control over memory allocation strategies, fast method calls internally, etc.. Fusion supports TCP, UDP and multicast, and is implemented using the Boost.Python python bindings.
Fusion is licensed under the MIT license, and available for download from http://itamarst.org/software.
The core of the smart card reader management is written in C++ but all the development tools are written in the friendly Python language. Boost plays the fundamental role of binding the tools to our core smart card reader library.
Revised 29 May, 2008
© Copyright Dave Abrahams 2002-2008.