zenfmt: An universal document to Markdown – library, CLI, server in Zig

vikrantrathore1 pts0 comments

zenfmt — convert documents to Markdown in your browser

Skip to content<br>Search docsThemeSystemLightDarkLanguageEnglish简体中文日本語한국어

zenfmt 0.3.5

Convert documents to Markdown.

Pandoc showed how useful a universal document converter can be. zenfmt is<br>a small attempt to explore that idea with an engine written in Zig.

This page converts locally in your browser. It does not upload the file.

1 · Source document

Drop a file here<br>or choose a file

Try a safe example

Advanced options<br>Loss policy

Convert and report loss<br>Refuse content loss<br>Refuse structural loss<br>Refuse any known loss

Preserve facet details

Format is detected from the file's contents, not its name.<br>19 formats are supported.

Loading the browser engine…

2 · Markdown output · read only

Copy<br>Download<br>Wrap lines<br>Cancel<br>Reset

Available in zenfmt 0.3.5

Use the same converter as a small HTTP service.

For workflows that need a shared endpoint, zenfmt serve<br>exposes conversion, health, and metrics from the same executable. Open<br>mode stays on loopback by default. Secure mode adds users, API keys, an<br>audit log, and a small administration interface.

zenfmt serve<br>curl -s -T report.docx "http://127.0.0.1:8998/api/v1/convert?to=markdown"<br>zenfmt serve --secure --data-dir ./zenfmt-data

Distribution1 file CLI, server, store migrations, and web assets

Interface3 themes System by default, with Light and Dark choices

Native releases7 targets Linux, macOS, and Windows archives

The release is intended to remain modest in its requirements. It does not<br>bundle Java, Python, OCR, VLM, or model assets.<br>Read the server guide or<br>choose a native archive.

Need help?

A first conversion

Supported formats and limits

Read the book

Why this works (design records)

A small reference benchmark

The conversion benchmark

The full release benchmark is incomplete. Earlier reference run. Ratios divide the comparison tool by zenfmt, so a value<br>above 1.0 means the comparison used more of that measure on shared files.

Native CLI

Geometric means over the 14 files converted by zenfmt and<br>AnyDoc.

Speed ratio6.9× AnyDoc wall time / zenfmt

CPU ratio7.9× AnyDoc CPU time / zenfmt

Peak memory ratio10.1× AnyDoc peak RSS / zenfmt

Long-running server, measured separately

Warm HTTP conversion against Apache Tika Server on the same host and<br>corpus. These values are not mixed into the native CLI ratios.

Warm latency ratio31.1× Tika / zenfmt over 16 shared files

Peak memory ratio34.2× Tika / zenfmt sampled RSS

Throughput at 1 client552.7 / 4.4 zenfmt / Tika documents per second

Explanation, method, and raw data

The converter needs JavaScript, because the conversion runs in your<br>browser rather than on a server. Everything else on this site — the book,<br>the design records, the benchmark method, and the downloads — works<br>without it.

zenfmt server markdown file loss conversion

Related Articles