README.md

May 7, 2026 · View on GitHub

speedata Publisher — Database in. PDF out.

Platforms License: AGPLv3 Manual


Database in. PDF out. Layout-as-code for high-volume, high-precision PDFs — catalogs, reports, manuals, anything where InDesign would mean fifty thousand clicks. Open source, deterministic, scriptable, in production since 2011.

Real-world performance

Three projects, same binary, same machine (M4 MacBook Air):

# Multi-level TOC, cross-references, PDF bookmarks
$ sp --data produkte.xml --layout katalog.xml
1828 pages rendered in 2m 56s
exit status 0
# Table of contents
$ sp --layout reisebroschuere.xml --data kundendaten.xml
13 pages rendered in 0.54s
exit status 0
# ZUGFeRD invoice with PDF/A-3 validation
$ sp --data facturx.xml --layout zugferd.xml
1 page rendered in 0.21s
exit status 0

Sample brochure spread

Sample brochure spread — layout-driven, image cutouts, branded tables, cross-references with page numbers.

Try it in 60 seconds

Grab a ready-to-run package from https://download.speedata.de/ (extract, set PATH, done — no TeX install, no InDesign license, everything bundled including LuaTeX). Then:

sp new mycatalog && cd mycatalog
sp                # → publisher.pdf

Full setup walkthrough in the installation guide.

Why speedata Publisher

  • Deterministic. Same data → bit-identical PDF. Reviewable, diff-able, CI-ready.
  • Scales. 1,000-page catalogs are the normal case, not the stress test.
  • Layout-as-code. XML layout language with XPath. Anything that takes a thousand clicks in InDesign is one rule here.
  • Open source. AGPLv3, builds from source, no closed-source dependencies.
  • Battle-tested. Production use since 2011, hundreds of QA test cases, long-term-support releases.

Think of it as XSL-FO on steroids or server-side InDesign.

Documentation & examples

Community & support

License

AGPLv3 — see COPYING.

speedata Publisher uses LuaTeX for PDF generation (GPLv2 or later). LuaTeX is bundled in the release packages; full third-party list in THIRD_PARTY_LICENSES.md.


Source: https://github.com/speedata/publisher/ · Web: https://www.speedata.de/