2,774 stars · MPL-2.0, read from /blob/main/LICENSE.txt on 2026-09-29, NOT the MIT most Python libraries carry; file-level copyleft, so modifications to pikepdf's own files must be published while combining it with closed software is free · 10.15.0 (2026-09-28), from PyPI. THE YEAR TRAP: /releases/latest prints "28 Sep" without a year and it was read as 2024. ungh's pushedAt of 2026-07-31 also cannot be right, because that release shipped on 28 September 2026. · Track this in Scout
A Python library for reading and writing PDF files, built on the QPDF engine, that preserves structure rather than redrawing the file.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A Python wrapper around QPDF, a long-established C++ library for PDF structure, at 2,774 stars on GitHub. Version 10.15.0 was published to PyPI on 28 September 2026, the day before this edition. It needs Python 3.11 or later.
What it is good for. Any job where PDFs arrive in a steady stream and have to be reshaped the same way each time: splitting a scanned batch into one file per document, stripping passwords from statements before filing them, or merging a cover page onto every report. It is also what several bigger document tools use underneath, including OCRmyPDF from Edition 27.
- It preserves PDF structure properly rather than re-drawing the file, so bookmarks, attachments and form fields survive a round trip.
- QPDF underneath is mature and fast, and the Python layer is pleasant to use rather than a thin translation of C++.
- 19 open issues and 3 open pull requests at 2,774 stars, which is an unusually clean board for a library of this age.
- The licence is MPL-2.0, not MIT. You may combine it with closed software freely, but if you modify pikepdf's own files and distribute the result, those changes have to be published.
- There is nothing to run. This is a library for people who write Python, and a person who wants to merge two PDFs today should use a command-line tool instead.
- It reshapes PDFs and does not read them. It does no text recognition on scans, does not render pages to images, and will not work out reading order for you.
pdfcpu/pdfcpu8,746 stars, Apache-2.0, covered in Edition 34 as that edition's strongest entry; it is a single downloaded command as well as a library, so it needs no programming for the common jobs.
Track this in Scout- py-pdf/pypdf
10,168 stars, BSD, code on 21 August 2026; pure Python with no compiled dependency, which makes it easier to install and slower on large files.
Track this in Scout
pymupdf/PyMuPDF10,797 stars, code on 28 September 2026, and the licence is the difference: AGPL-3.0 with a paid commercial option, where this one is MPL-2.0.
Track this in Scout
python3 -m venv venv source venv/bin/activate pip install pikepdf
