I recently started a new project, ackward, which aims to provide a C++ interface to parts of the Python standard library. The library is aimed at embedded Python scenarios where the C++ program needs to interact on a deeper level with the Python structures and such. Of course, you can already accomplish this using the Python C-API or boost.python, but ackward will provide much more idiomatic and usable interfaces to the Python layer.
The first part of the standard library that ackward implements is the logging library. In fact, the desire to interact seamlessly with the logging library from C++ was the initial grain from which ackward grew. Using ackward, a C++ program can write code like this:
using namespace ackward::logging; Logger l = getLogger("my_app"); l.log(Debug, "This is the verbose way"); l.debug("This is the terser way");
And so on. If you’re familiar with the Python logging module, ackward should make it extremely comfortable to use it in C++. And, since the Python logging module is a pretty good system in its own right, it should be a good tool even for people who just want a reasonable logging system.
I plan to expand ackward’s coverage of Python as I have time and motivation. A lot of its direction will likely be guided by my needs at work. I’ve already done a fair amount of work on the datetime module, and I’m sure I’ll find other areas that will be useful.
So, try it out of you’re so inclined. You can get it at google code.