We're happy to announce robin, a new Doxygen/C++ to Sphinx bridge. Robin provides an easy-to-use, easy-to-hack integration of Doxygen documentation into Sphinx. Robin is licensed under the BSD and can be found at Bitbucket: https://bitbucket.org/reima/robin


  • Robust extraction of Doxygen XML data via an easy-to-hack parser
  • Intermediate data is stored in a database (mongodb) for simple extraction and processing
  • Directive-driven output; each directive provides callbacks and hooks which allows for deep customization
  • Automated generation of driver ReST documents: Similar to automodule; however, robin generates actual ReST documents which can be inspected


Robin expects a running mongodb on the local host. It uses a minimal set of external libraries: Pymongo, sphinx, progressbar. All of the dependencies can be easily installed using pip or easy_install.

Robin has been developed with Python 2.7; we have not tested previous versions.

Getting started

  • Run Doxygen to generate XML documentation (GENERATE_XML=YES)

  • Run extract-doxygen <path to XML> <project name>

  • Run create-rst <project name>
    • This generates several directories (classes, groups, etc.)
    • Include the groups.rst into your toc
  • Add 'robin.sphinx' to the Sphinx extensions

  • Build (make html) for TOC update

  • Build again (make clean && make html)


We're using robin internally for a large C++ codebase, and there are a few minor issues left that we hope to resolve soon (all of them are tracked on Bitbucket.) After that, we expect that robin will go into "maintenance" mode focusing on bug fixes only. If someone is interested in contributing, please get in touch with us.

the robin developers