Skip to content
Milosz edited this page Oct 14, 2026 · 21 revisions

RayoMD documentation

RayoMD is a tiny native Markdown-to-PDF converter focused on fast startup, small packaged binaries, and predictable deployment. Its native renderer writes PDF bytes directly from C++17 without requiring a browser, Pandoc, or LaTeX.

The current release is 4.7.0: the same PDFs as 4.6, sooner. In batches, --serve and the app, tables with formulas take about 28 % less time, documents with formulas 11 %, highlighted code 8 % and CJK text in a fallback font 28 %; one-shot exports of CJK text and of cached images 15 to 28 % (see Performance History). --fast-images converts a new PNG with transparency about 10 % sooner, for image streams a few percent larger (see CLI Reference). 4.6.0: HTML in Markdown as GitHub shows a README: inline tags (<kbd>, <sup>, <sub>, <mark>, <u>, <a href> and more), aligned <div>s, <p>s and headings, <img width height> and rows of images, <details>, HTML lists, tables, quotes and <pre>, and id anchors as link targets (see Native Markdown Support). 4.5.0: OpenType fonts with PostScript (CFF) outlines load and embed (.otf, and .ttc collections of them, such as Noto Sans CJK); formulas are set in embedded fonts made from TeX Gyre, so they look the same in every viewer, and --pdfa typesets them; themes take real bold and italic faces (see Themes); bullets are drawn as markers by nesting depth; Hangul built from composite glyphs no longer overprints; embedded fonts carry their PostScript name with a subset tag. 4.4.0: a one-shot export takes 17 to 28 % less CPU than in 4.3.1 and exports in a running process are 12 % faster on average, with every PDF byte for byte the same (see RayoMD 4.4.0 Speed 2026-10-13); Pandoc mode is gone. 4.3.1 loaded and subset the TrueType font with less work (see RayoMD 4.3.0 Text 2026-10-13, section 4.3.1). 4.3.0: Unicode text takes two bytes a character in the PDF instead of four hex digits, so such documents come out up to 26 % smaller and export up to 12 % faster, and documents of plain code blocks export 34 to 42 % faster in a warm process (see RayoMD 4.3.0 Text 2026-10-13). 4.2.2 reads an image file again when it changed on disk during --serve, --batch or an app session (see CLI Reference). 4.2.1 converts new PNG images up to 17 % faster than 4.2.0 on one core and up to 29 % faster on two (see RayoMD 4.2.1 Images 2026-10-13). Against other Markdown-to-PDF tools on 4.3.1, Qt 6's printing included, see Markdown-to-PDF Comparison 2026-10-13. 4.2.0 decoded PNGs with its own inflater a row at a time and compressed them on up to four cores: up to 14 % faster than 4.1.0 on one core, and a 2048×2048 image in 8.4 MiB instead of 27.8 (see RayoMD 4.2.0 Images 2026-10-13). 4.1.0 was the image release: PNGs with transparency 1.6 to 3.6 times faster than in 4.0.0, with the same pixels and smaller files, and an image converted before in about 2 ms from a persistent image cache (see RayoMD 4.1.0 Images 2026-10-13). 4.0.0 was the speed release: one-shot exports 34 to 69 % faster than 3.2.0, warm conversions 16 % faster, byte-identical PDFs, and a fully static Linux edition (see Packaging and Releases). 3.2.0 added page sizes, batch reports with --recursive and --skip-unchanged (Batch Conversion), opt-in compression, front-matter metadata, Themes, PDF/A-3b and tagged PDF/UA-1 (Archival and Accessible PDFs), footnotes, code highlighting in 29 languages, tables of contents, Books, and SVG images drawn as vectors to 3.1's task lists, alerts, bookmarks, page numbers and natively typeset TeX-subset math; see Native Markdown Support. RayoMD 4.3.0 Text 2026-10-13 is the latest dated report; Performance History keeps the per-change measurements, and performance.md beside the code says how to measure and what is left to gain.

Start here

The main repository remains authoritative for source code, release files, build scripts, and CI fixtures. This wiki contains the longer user and engineering guides and the dated benchmark reports.

When to use another tool

Use native RayoMD when the document is simple, speed matters, and the package must remain small. Use Pandoc, a browser renderer, or LaTeX when you need full CommonMark/Pandoc extensions, complete LaTeX math, templates, filters, citations, or HTML/CSS fidelity.

RayoMD's native renderer is intentionally a fast Markdown subset, not a Pandoc clone.

Clone this wiki locally