Cmark ist eine Referenzimplementation von CommonMark, das von MarkDown abstammt. Sie übernimmt das Parsen und die Übersetzung in HTML oder XML. In einem Zwischenschritt wird eine Repräsentation der Dokumente als abstrakter Syntaxbaum generiert, die erweitert werden kann. Zu Cmark gehört eine zu C99 kompatible Bibliothek libcmark.