Repository navigation
Home
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.
- Getting Started — install, build, and make a first PDF
- CLI Reference — export, book, batch, stdin, serve, and benchmark modes
- Batch Conversion — folders, reports, and incremental runs
-
Books — one PDF of a
SUMMARY.md, a folder, or files - Themes — company fonts, colours, headers, footers, and cover pages
- Archival and Accessible PDFs — PDF/A-3b and tagged PDF/UA-1
- Native Markdown Support — the supported subset and its boundaries
- C++ API — embed the native exporter
- Reversible PDFs — opt-in exact Markdown recovery
- Benchmarks — dated results, methodology, and reproduction notes
- Performance Watcher — verification, benchmarks, and regression gates
- Packaging and Releases — artifacts and lightweight-package boundaries
- Brand Assets — mascot and icon contribution guidance
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.
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.