Open source · Apache-2.0 · RayoMD 5.2.5 · GUI 1.4.0

RayoMD

Markdown to PDF in under a millisecond.

A single small executable for Linux and Windows, and a desktop app that shows the real PDF as you type. No browser, no LaTeX, no Pandoc, no runtime.

rayomd --export report.md report.pdf
See the native path
0.76 ms A short note, start to exit
0.16 ms Each export in a running process
727 KB Linux download, 852 KB Windows
3.4 MiB Peak memory of an export

RayoMD 5.2.5 on an AMD Ryzen 5 PRO 4650GE, measured on 2026-10-20: a short note as a fresh process; tester.md in a running process and for memory (1.34 ms fresh). Against other tools

The native path

Ship PDFs, not Chromium.

RayoMD parses Markdown and writes PDF bytes directly, in its own C++17 code. It typesets formulas, colours code and draws diagrams itself: nothing starts a browser, a TeX installation, or Pandoc.

01 Markdown bytes # Report
02 Native parse + layout C++17
03 Valid PDF bytes %PDF-1.7
  • TeX math typeset natively
  • Code coloured in 29 languages
  • Mermaid diagrams drawn as vectors
  • PDF/A-3b and PDF/UA-1
  • Linux binary needs only libc

Real output

Inspect what the engine produces.

Every preview below was exported by RayoMD 5.2.5. Open the Markdown, the generated PDF, and the exact command used.

First page of the Technical note PDF generated by RayoMD

Generated sample

Technical note

Typeset formulas, a Mermaid flowchart, Python coloured as on GitHub, a task list, and a footnote.

Command rayomd --export technical-note.md technical-note.pdf native modern normal

RayoMD GUI 1.4.0

Write Markdown. See the real PDF.

The desktop app draws the PDF RayoMD just built, with its own renderer, as you type: not an imitation of it. The Markdown shows in your theme's colours; on Omarchy the app follows the theme as it changes.

RayoMD GUI: the Markdown of a technical note with syntax colours on the left, its PDF with a formula, a flowchart and highlighted code on the right
  • About 2 msfrom a keystroke to the edited page's preview in tester.md
  • The real PDF0.5/255 from poppler's rendering, on average over 51 test pages
  • Every export optionstyles, page sizes, PDF themes, contents, Obsidian notes, PDF/A and PDF/UA
  • Native and smalla 1.6 MB Linux download needing only libc, 2.0 MB for Windows

Focused workloads

Small engine. Specific jobs.

01

CI documentation

Turn release notes, manuals, and whole folders of repository Markdown into reproducible build artifacts, on up to 64 threads.

rayomd --batch docs pdf-out --recursive --skip-unchanged
02

Generated reports

Convert Markdown from backend jobs or AI pipelines without maintaining a browser pool. A running process exports each further document in 0.16 ms.

cat report.md | rayomd --stdin report.pdf
03

Books and notes

One PDF from an mdBook or GitBook SUMMARY.md, a folder, or an Obsidian note and the notes it links to, with one table of contents.

rayomd --book SUMMARY.md book.pdf --toc --page-numbers
04

Local and embedded tools

Keep conversion offline and link the C++ exporter into your own application, as RayoMD GUI does.

#include "rayomd/tiny_pdf.h"

Deliberate scope

Fast because the job is smaller.

RayoMD renders a Markdown subset, not every document format. Unsupported input degrades to readable output instead of failing the export.

Use native RayoMD for

  • GitHub-style Markdown: tables, task lists, footnotes, alerts
  • TeX math, typeset in embedded fonts
  • Code in 29 languages and Mermaid flowcharts, sequence and pie charts
  • PNG, JPEG, and SVG images
  • Tables of contents, themes, headers, footers, and covers
  • Books, Obsidian vaults, and batch folders
  • PDF/A-3b archives and tagged PDF/UA-1

Use a broader engine for

  • HTML and CSS layout
  • JavaScript-rendered pages
  • Complete LaTeX: packages, macros, numbering
  • Citations, bibliographies, and filters
  • Right-to-left scripts
  • Mermaid beyond flowcharts, sequence diagrams, and pie charts
Read the complete native compatibility matrix

Dated and reproducible

Performance with the caveats attached.

Each tool converts the same document, tester.md without images, as a fresh process: start, parse, layout, write, exit. The other tools render more, and render it differently.

RayoMD 5.2.5 against other Markdown-to-PDF tools on Linux, measured on 2026-10-20
ToolVersionTimeAgainst RayoMDPeak memory
RayoMD5.2.51.34 ms1x3.4 MiB
glu0.0.4655 ms41x33 MiB
Qt 6 QTextDocument6.12.071 ms53x39 MiB
Pandoc + Typst3.11, Typst 0.15.1357 ms266x239 MiB
Pandoc + WeasyPrint3.11, 70.0987 ms737x241 MiB
md-to-pdf5.2.5, Chromium 1541,821 ms1,359x205 MiB
Pandoc + XeLaTeX3.11, TeX Live 20262,147 ms1,602x340 MiB

Optional reversible profile

Exact source in. Exact source out.

RayoMD can attach the original UTF-8 Markdown to its PDF in the rayomd-source/1 profile, check its length and SHA-256 integrity, and recover it byte for byte later.

rayomd --export report.md archive.pdf --embed-source rayomd --inspect-source archive.pdf rayomd --recover-source archive.pdf recovered.md
Understand the format and limits

Choose the deployment

Run it yourself, or help define the hosted API.

Open source

Own the binary.

Download the command-line tool for Linux or Windows, the desktop app, or link the C++ exporter into your own program, all under Apache-2.0. The default Linux build needs only libc; a curl build fetches URL images.

Private beta

Put the engine behind HTTPS.

Share your volume, workflow, and one blocking requirement. The beta will be built around verified workloads.