Doxygen est un générateur de documentation sous licence libre capable de produire une documentation logicielle à partir du code source d'un programme. Pour cela, il tient compte de la syntaxe du langage dans lequel est écrit le code source, ainsi que des commentaires s'ils sont écrits dans un format particulier. Le code de Doxygen a été écrit en grande partie par Dimitri van Heesch. Doxygen est la contraction de « dox » (« docs », abréviation anglaise de « documents ») et de « gen » (« generator »), « générateur de documentation ». Doxygen peut analyser des fichiers sources écrits dans les langages C, Objective C, C#, PHP, C++, Java, Python, IDL, Fortran, VHDL, Tcl et dans une certaine mesure D. La documentation peut être produite dans les formats suivants : HTML (compressé ou non), LaTeX, RTF, PostScript, PDF avec hyperliens, et prochainement XML (en cours de développement). En intégrant la documentation au code source, Doxygen favorise la cohérence entre documentation et code. Il incite aussi les développeurs à documenter leur code. Il est également possible d'extraire de la documentation à partir d’un code source non documenté au préalable, ce qui peut faciliter la compréhension d'un programme dont le code est compliqué. De nombreux projets, tels que KDE, utilisent Doxygen pour générer la documentation de leur API. KDevelop intègre le support de Doxygen. De nombreux éditeurs de texte proposent des modes ou des scripts pour faciliter l'écriture des commentaires Doxygen et la génération de la documentation. Les informations suivantes peuvent être extraites des sources : prototype et documentation des fonctions, qu'elles soient locales, privées ou publiques, etc. ; liste des fichiers inclus ; liste des modules (groupements définis dans la documentation) ; documentation des structures de données ; prototype et documentation des classes et leur hiérarchie ; différents types de graphes : diagrammes de classe, de collaboration, d'appels, d'inclusion, etc.
Gilles Dubochet, Donna Malayeri