A MkDocs plugin that generates API reference documentation directly from source code docstrings, using language-specific handlers.
breathe-doc/breathe
A Sphinx plugin that brings Doxygen-generated C/C++ API documentation into reStructuredText and Sphinx docs.
- Stars
- 816
- Forks
- 215
- Open issues
- 220
- Last commit
- 5 days ago
What is it?
Breathe bridges Doxygen and Sphinx. Doxygen parses source code and extracts a detailed model of its classes, functions and other symbols, while Sphinx produces polished long-form documentation. Breathe reads Doxygen's XML output and exposes it as Sphinx directives, so API reference pages can be written and styled alongside hand-written prose in the same documentation set.
The plugin is installed from PyPI with pip and requires Python 3.9+, Sphinx 7.2+, and Doxygen 1.9.2+. Its documentation includes examples covering the available directives, and the repository includes a test suite and a comparison script for checking documentation output across commits.
The project is maintained by a small group of contributors and is used by several large open-source codebases, including PyTorch, NumPy and Apache Arrow, to publish their C and C++ API references.
Key features
- 01Renders Doxygen XML output as Sphinx directives for C, C++ and related symbols.
- 02Lets API reference pages sit alongside hand-written reStructuredText content.
- 03Installable from PyPI with pip.
- 04Requires Python 3.9+, Sphinx 7.2+ and Doxygen 1.9.2+.
- 05Includes a test suite and a script to compare documentation output between commits.
Use cases
- Publishing a C or C++ library's API reference alongside its user guide in Sphinx.
- Keeping API docs generated from source comments in sync with hand-written documentation.
- Documenting embedded or systems code bases that already use Doxygen.
Quick start
- 1
Install Breathe from PyPI
pip install breathe
Things to know
- Requires Doxygen 1.9.2+ and Sphinx 7.2+ installed separately.
- License is not clearly specified in the metadata.
In collections
Topics
FAQ
- What is breathe?
- A Sphinx plugin that brings Doxygen-generated C/C++ API documentation into reStructuredText and Sphinx docs. Breathe bridges Doxygen and Sphinx. Doxygen parses source code and extracts a detailed model of its classes, functions and other symbols, while Sphinx produces polished long-form documentation. Breathe reads Doxygen's XML output and exposes it as Sphinx directives, so API reference pages can be written and styled alongside hand-written prose in the same documentation set.
- Is breathe free to use? What license does it have?
- breathe is open source under the Other license. Check the license terms before using it in commercial products.
- Is breathe still maintained?
- Actively maintained. The last commit to breathe was on Nov 1, 2026.
- What can I use breathe for?
- Publishing a C or C++ library's API reference alongside its user guide in Sphinx. Keeping API docs generated from source comments in sync with hand-written documentation. Documenting embedded or systems code bases that already use Doxygen.
- How do I install breathe?
- Install Breathe from PyPI: pip install breathe
- Where can I get breathe?
- The source code and installation instructions are on GitHub: https://github.com/breathe-doc/breathe
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Doxygen generates documentation from annotated source code, and can also draw code structure and dependency diagrams from undocumented sources.
Python documentation generator that builds HTML, PDF, EPUB and other output from reStructuredText or Markdown sources.
A command-line tool that watches a Sphinx documentation directory, rebuilds the docs on changes, and reloads the browser via a local server.
A Sphinx extension that moves Python type hints into autodoc's parameter and return fields, with links and stub support.
A Sphinx extension that parses NumPy-style docstrings and renders them into structured API documentation.