Comparison of documentation generators
The following tables compare general and technical information for a number of documentation generators . Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs. Note that many of the generators listed are no longer maintained.
Basic general information about the generators, including: creator or company, license, and price.
Name
Creator
Input format
Languages (alphabet order)
OS support
First public release date
Latest stable version
Software license
Ddoc
Walter Bright
Text
D
Windows, OS X, Linux and BSD
2005/09/19
DMD 2.078.3
Boost (opensource)
docToolchain
Ralph D. Müller
Text
Java
Windows, OS X, Linux and BSD
2018/08/31
v3.4.2
MIT license
Document! X
Innovasys
Text, Binary
C++/CLI only, C#, IDL, Java, VB, VBScript, PL/SQL
Windows only
1998
2014.1
Proprietary
Doxygen
Dimitri van Heesch
Text
C/C++, C#, D, IDL, Fortran, Java, PHP, Python
Any
1997/10/26
1.13.2
GPL
Epydoc
Edward Loper
Text
Python
Any
2002/01/—
3.0 (2008)
MIT
fpdoc (Free Pascal Documentation Generator)
Sebastian Guenther and Free Pascal Core
Text
(Object)Pascal/Delphi
FPC tier 1 targets
2005
3.2.2
GPL reusable parts are GPL with static linking exception
Haddock
Simon Marlow
Text
Haskell
Any
2002
2.15.0 (2014)
BSD
HeaderDoc
Apple Inc.
Text
AppleScript, Bash, Csh, C, C++, Delphi, IDL, Java, JavaScript, MIG, Pascal, Perl, PHP, Python, Ruby, Tcl
Any Unix-like
2000/09/—
8.9.28 (2013)
APSL
Imagix 4D
Imagix Corp.
Text
C, C++, Java
Windows, Linux, Unix
1995
7.3
Proprietary
Javadoc
Sun Microsystems
Text
Java
Any
1995
1.6
GPL
JSDoc
Michael Mathews
Text
JavaScript
Any
2001/07/—
1.10.2
GPL
JsDoc Toolkit
Michael Mathews
Text
JavaScript
Any
2007?
2.0.0
MIT
mkd
Jean-Paul Louyot
Text
Any with comments
Unix, Linux, Windows
1989
2015
EUPL GPL
MkDocs
Tom Christie
Text
Python
Any
2014/10/29
1.5.3
BSD
Natural Docs
Greg Valure
Text
Any with comments
Any
2003/05/26
2.0.2
GPL
NDoc
Jason Diamond, Jean-Claude Manoli, Kral Ferch
Binary
C#
Windows only
2003/07/27
1.3.1
GPL
pdoc
Andrew Gallant
Text
Python
Any
2013
1.0.1 (2021)
Unlicense (PD)
perldoc
Larry Wall
Text
Perl
Any
1994
5.16.3
Artistic , GPL
phpDocumentor
Joshua Eichorn
Text
PHP
Any
2000
3.0.0
LGPL for 1.x, MIT for 2+
pydoc
Ka-Ping Yee[ 1]
Text
Python
Any
2000
in Python core
Python
RDoc
Dave Thomas
Text
C, C++, Ruby
Any
2001/12/14
in Ruby core
Ruby
ROBODoc
Frans Slothouber
Text
Any with comments
Any
1995/01/19
4.99.36 (2015)
GPL
Sandcastle
Microsoft
Text
.NET
Windows only
2008/05/—
2.4.10520 (2016)
Ms-PL
Sphinx
Georg Brandl
Text
Ada, C, C++, Chapel, CMake, Fortran, GraphQL, JavaScript, Matlab, PHP, Python, reStructuredText, Ruby, Rust, VB
Any
2008/03/21
8.2.1
BSD
Visual Expert
Novalys
Text, Binary
C#, PL/SQL, Transact-SQL, PowerBuilder
Windows only
1995
2017
Proprietary
VSdocman
Helixoft
Text
VB, VBScript, C#
Windows only
2003 Oct 2
9.0
Proprietary
YARD
Loren Segal
Text
Ruby
Any
2007/02/24
0.7.3
MIT
Name
Creator
Input format
Languages (alphabet order)
OS support
First public release date
Latest stable version
Software license
The output formats the generators can write.
Generator name
HTML
CHM
RTF
PDF
LaTeX
PostScript
man pages
DocBook
XML
EPUB
Ddoc
Yes
Yes[ a]
No
Yes[ a]
Yes[ a]
Yes[ a]
Yes[ a]
No
Yes[ a]
No
docToolchain
Yes
No
No
Yes
No
No
No
Yes
No
Yes
Document! X
Yes
Yes
No
No
No
No
No
No
No
No
Epydoc
Yes
No
No
Yes
Indirectly[ b]
Indirectly[ b]
No
No
No
No
fpdoc
Yes
Native
Yes
Indirectly[ b]
Indirectly[ b]
Yes
No
No
No
No
Haddock
Yes
Yes
No
No
No
No
No
Partial
No
No
HeaderDoc
Yes
No
No
No
No
No
Yes
No
Yes
No
Imagix 4D
Yes
No
Yes
No
No
No
No
No
No
No
Javadoc
Yes
Indirectly[ c]
Indirectly[ c]
Indirectly[ c]
Indirectly[ c]
Indirectly[ c]
Indirectly[ c]
Indirectly[ c]
Indirectly[ c]
No
JSDoc
Yes
No
No
No
No
No
No
No
No
No
JsDoc Toolkit
Yes
No
No
No
No
No
No
No
Yes+JSON
No
MkDocs
Yes
No
No
No
No
No
No
No
No
No
Natural Docs
Yes
No
No
No
No
No
No
No
No
No
NDoc
Yes
Yes
No
No
No
No
No
No
No
No
pdoc
Yes
No
No
No
No
No
No
No
No
No
phpDocumentor
Yes
Yes (1.x only)
No
Yes (1.x only)
No
No
No
Yes (1.x only)
Yes (1.x only)
No
pydoc
Yes
No
No
No
No
No
No
No
No
No
RDoc
Yes
Yes[ d]
No
No
No
No
Indirectly[ e]
No
Yes[ d]
No
ROBODoc
Yes
Indirectly
Yes
Indirectly[ b]
Yes
Indirectly[ b]
Yes
Yes
No
No
Sandcastle
Yes
Yes
No
No
No
No
No
No
No
No
Sphinx
Yes
Yes
No
Indirectly[ f]
Yes
No
Yes
No
Yes
Yes
Visual Expert
Yes
No
No
No
No
No
No
No
No
No
VSdocman
Yes
Yes
No
Yes
No
No
No
No
Yes
No
YARD
Yes
No
No
No
No
No
No
No
No
No
Generator name
HTML
CHM
RTF
PDF
LaTeX
PostScript
man pages
DocBook
XML
EPUB
Other features
possibility of extended customization
generated diagrams
highlighting and linking of generated doc
parameter types extracted
Ddoc
with macros
docToolchain
customizable themes, custom tasks
many diagram plugins (plantUML, mermaid, ...)
automatic and manual references, table of contents, bibliography, ...
Document! X
customizable HTML based templates, custom comment tags
linked graphical object relationship diagrams
internal links and links to .NET framework documentation
types extracted and linked
Doxygen
with XSLT
caller and callee graphs, dependency graphs, inheritance diagrams, collaboration diagrams
Epydoc
Haddock
Yes
Yes
HeaderDoc
Custom headers, footers, code coloring, and other CSS styles in individual pages. Project-wide TOC is generated from a user-defined template.
Configurable syntax highlighting/coloring with automatic linking to symbols in declaration, ability to manually link to symbols in discussion, etc.
Provides warnings if tagged parameters do not match code, parsed parameters included in XML output and Doxygen-style tagfile (-D flag in 8.7). Partial C preprocessor support with -p flag. Support for #if/#ifdef control over documentation inclusion using the -D and -U command-line flags.
Imagix 4D
customizable through style sheets and CSS
linked hierarchy and dependency graphs for function calls, variable sets and reads, class inheritance and interface, and file includes and interface, intra-function flow charts
fully cross-linked project-wide, including all hierarchy and dependency graphs, metrics tables, source code snippets, and source files
full semantic analysis of source code, including parameter types, conditional compilation directives, macro expansions
Javadoc
JSDoc
Yes
JsDoc Toolkit
Yes
mkd
Customisable for all type of comments
'as-is' in comments
all general documentation; references, manual, organigrams, ... Including the binary codes included in the comments.
all coded comments
MkDocs
Natural Docs
NDoc
perldoc
Extend the generator classes through Perl programming.
Only linking
pdoc
overridable Jinja2 templates
source code syntax highlighting, automatic cross-linking to symbol declarations
Yes
phpDocumentor
Smarty-based templates (1.x), Twig-based templates (2+)
class inheritance diagrams
cross reference to generated documentation, and to php.net function reference
Yes
pydoc
RDoc
ROBODoc
Sphinx
Customizable themes (10 first-party); Jinja templating; Python plugins
class inheritance diagrams, graphviz, third party (e.g. using aafigure, actdiag, Google Chart, gnuplot, mermaid)
Automatic cross-referencing (including between projects), Index; Table of Contents, Syntax highlighting with Pygments
custom objects (such as functions and classes)
Visual Expert
documentation content and styles customizable
Class inheritance, call trees, dependencies (impact analysis)
internal links between classes, methods, variables, tables, columns...
all types extracted
VSdocman
full customization for all output formats, templates for MSDN-like output, custom XML comment tags
linked graphical class diagrams, class inheritance tree
internal links and links to .NET framework documentation
types extracted and linked
YARD
customizable Ruby templates
class diagrams with extra tool
internal classes/modules cross-referenced and Ruby source highlighted
See also
Notes
^ a b c d e f Ddoc has a macro system which can be customized to output any desired format. CHM, groff (manpages), XHTML, XML, and LaTeX (so PostScript and PDF) were tested. They are not currently included in the standard distribution. Standard HTML output also is generated using macros and can be redefined.
^ a b c d e f Though not officially supported as an output format, Epydoc uses LaTeX and PostScript as intermediate steps to produce the final PDF documentation.
^ a b c d e f g h Via Doclets from Third Parties.
^ a b RDoc currently only provides generators for CHM and XML documents in the RDoc version provided as part of the Ruby 1.9 Core.
^ RDoc generates documentation for RI , which is Ruby's version of the Unix man pages.
^ Generated from the LaTeX output only
References