Home

Doxide: Modern documentation for modern C++

Doxide is a documentation generator for C++. It parses C++ source files annotated with documentation /** comments */ or /// comments with additional @commands or arbitrary Markdown formatting. Doxide then publishes HTML documentation using MkDocs and the Material for MkDocs theme. This website is an example.

Doxide also generates code coverage reports with sunburst charts and sortable tables, based on gcov data and source code parsing. These interactive reports make it easy to drill into a codebase and determine where further testing may be warranted to increase code coverage. The underlying approach improves the accuracy of code coverage results with C++, being aware of function templates that have not been instantiated, which are a blind spot of other tools.

  • Doxide is configured with YAML, generates Markdown, and publishes HTML for the web.
  • It aims at a modern look and feel, with responsive design for both desktop and mobile devices.
  • It is written in C++ so that its primary users, C++ developers, can readily contribute.
  • It is open source under an Apache 2.0 license, and runs on Linux, Mac, and Windows.
  • It parses C++, with support for CUDA extensions, using Tree-sitter.
  • To help with migration from other documentation tools, many standard Doxygen commands are supported.

Development of Doxide is active, feedback is sought, and contributions very welcome. See the GitHub repository to report an issue or contribute a bug fix or feature, or contact Lawrence Murray ( ).

/**
 * An example.
 * 
 * @tparam T Template parameter.
 * 
 * @param x Input parameter.
 * @param[out] y Output parameter.
 * 
 * @return Return value.
 * 
 * @tip There are plenty more [demonstrations available](/demo)!
 */
template<class T>
int f(int x, int& y);

template<class T> int f(int x, int& y)

An example.

T
Template parameter.
x
Input parameter.
y
Output parameter.
Return
Return value.

Tip

There are plenty more demonstrations available!