5× faster than industry leaders

The Fastest PDF Library

For Rust, Python, JavaScript, TypeScript, Golang, C# and WASM

0.8ms
Mean per PDF
100%
Pass rate
3,830
PDFs tested
5.1×
Faster than #2
Get startedView on GitHub

Up and running in seconds.

One install. Three lines of code.

$ cargo add pdf_oxide
use pdf_oxide::PdfDocument; let mut doc = PdfDocument::open("paper.pdf")?; let text = doc.extract_text(0)?; let images = doc.extract_images(0)?;

One Library.
Create|Edit|Extract

Every PDF operation in a single dependency.
No wrappers, no subprocess calls, no C/C++/Java runtimes.

01

Create

Build PDFs from any source format.

  • Markdown
    Convert Markdown to pixel-perfect PDFs with headings, lists, tables, and code blocks.
  • HTML
    Turn HTML markup into structured PDF documents with full CSS layout support.
  • Images
    Single or multi-page PDFs from PNG, JPEG, and TIFF with automatic sizing.
  • QR & Barcodes
    Code128, EAN-13, UPC-A, and QR codes with configurable error correction.
  • Builder API
    Fluent PdfBuilder chain for page size, margins, fonts, metadata, and headers.
  • Forms
    Text fields, checkboxes, radio buttons, dropdowns, stamps, and watermarks.
02

Edit

Modify any part of an existing PDF.

  • DOM Editing
    Find text, replace content, and restyle — navigate the PDF like a web page.
  • Pages
    Rotate, crop, merge documents, extract page ranges, and reorder.
  • Forms
    Get and set field values, add or remove fields, flatten to static content.
  • Annotations
    Add highlights, notes, and links. Modify or flatten selectively.
  • Images
    Reposition, resize, and replace embedded images with exact bounds.
  • Security
    AES-256 encryption, passwords, and fine-grained permission flags.
03

Extract

Get everything out of any PDF.

  • Text
    Full-page text, styled spans with font metadata, or per-character positions.
  • Images
    Content streams, nested Form XObjects, and inline images with color spaces.
  • Markdown
    Clean Markdown or HTML with heading detection and table preservation.
  • Forms
    All field values and types. Export to FDF or XFDF. XFA analysis.
  • Metadata
    XMP, Dublin Core, page labels, catalog, and trailer dictionaries.
  • Search
    Full-text search with regex, case-insensitive, and whole-word modes.

5× faster than every alternative.

Benchmarked on 3,830 real-world PDFs from 3 public test suites.

Node.js, Go, and C# share the same Rust core — expect matching numbers.

LibraryLanguageMeanp99Pass RateLicense
PDF Oxide7 languages0.8ms9ms100%MIT
PyMuPDFPython4.6ms28ms99.3%AGPL-3.0
oxidize_pdfRust13.5ms11ms99.1%MIT
pypdfium2Python4.1ms42ms99.2%Apache-2.0
pdfminerPython16.8ms124ms98.8%MIT
pdfplumberPython23.2ms189ms98.8%MIT
pypdfPython12.1ms97ms98.4%BSD-3
unpdfRust2.8ms10ms95.1%MIT
pdf_extractRust4.08ms37ms91.5%Apache-2.0
lopdfRust0.3ms2ms80.2%MIT

Measured on 3,830 PDFs (veraPDF, Mozilla pdf.js, DARPA SafeDocs).
Single-thread, no warm-up, 60s timeout.

100% reliable. Zero surprises.

Tested on 3,830 PDFs from three independent public test suites.
Zero panics. Zero timeouts. Zero crashes.

3,823
valid PDFs parsed
without a single failure
99.5%
text quality parity
vs PyMuPDF & pypdfium2
7
intentionally broken PDFs
correctly rejected

The corpus covers every PDF version (1.0–2.0), encrypted files, malformed documents, CJK encodings, and DARPA SafeDocs security edge cases designed to crash vulnerable parsers.

Start building.

Free for commercial and open-source projects.

Read the docs