groff es el reemplazolibre deGNU para los formateadores de textonroff ytroff. Es una implementación escrita principalmente en C++ porJames Clark y fue modelada sobre la base deditrof, incluyendo muchas extensiones. La primera versión, 0.3.1, fue dispuesta al público en junio de 1990. La primera versión estable, 1.04, fue anunciada en noviembre de 1991. Groff fue desarrollado comosoftware libre para proporcionar una alternativa a nroff/troff, que en ese tiempo eran propietarios y ni siquiera estaban disponible en algunos sistemas Unix. En 1999,Ted Harding yWerner Lemberg asumieron la dirección del proyecto.
Groff posee una gran cantidad de asistentes, preprocesadores y postprocesadores incluyendoeqn,tbl,pic ysoelim. También hay disponibles diversos paquetes que mejoran, expanden o reemplazan totalmente las capacidades de lasmacros originales de troff.
Actualmente el desarrollo de groff está activo y creando nuevas capacidades, puesto que es una parte importante de cualquier derivado de Unix como GNU/Linux o los derivados de BSD4.4, principalmente por su uso en laspáginas de man de Unix.
Hasta hace poco,O'Reilly era una compañía de publicación que dependía bastante en groff para la salida final de páginas y el flujo de trabajo (actualmente los libros son hechos principalmente con una combinación deAdobe FrameMaker yQuarkXPress, lo que se puede notar en loscolofones de sus libros).