Create, comply, sign, light edit.
A streaming PDF library for Node and browsers with zero runtime dependencies. Pages are written as they end, so memory stays flat; PDF/A and PDF/UA output passes veraPDF.
Where it wins
Against the JavaScript PDF libraries in the 1.0 benchmark run (GitHub Actions 38317309719, same runner, wall time from process start). Every number, and where it loses.
What it does
Write
Standard or embedded TrueType fonts (subset, kerned, any Unicode), wrapping text boxes, JPEG/PNG, canvas-style paths, gradients, links, bookmarks. Indic and Arabic through a HarfBuzz shaper you plug in.
Comply and protect
PDF/A-1b to 3a, PDF/UA-1 tagging, Factur-X / ZUGFeRD invoices, AcroForms, AES-256 encryption, PAdES signatures while streaming.
Read and edit
Load (also damaged files), merge, split, reorder, extract text, fill and flatten forms, incremental updates. Active content is stripped on read.
It does not render PDFs (use pdf.js or PDFium). For raw speed, Go and Rust writers are faster: see Benchmarks.