HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
yfedoseev
pdf_oxide
Rust2026–2026
yfedoseev / pdf_oxide

pdf_oxide

The fastest PDF library for Python and Rust. Text extraction, image extraction, markdown conversion, PDF creation & editing. 0.8ms mean, 5× faster than industry leaders, 100% pass rate on 3,830 PDFs. MIT/Apache-2.0.

3Distinct people
3Mentions
0Explicit recommenders
1.2KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The fastest PDF library for Python and Rust. Text extraction, image extraction, markdown conversion, PDF creation & editing. 0.8ms mean, 5× faster than industry leaders, 100% pass rate on 3,830 PDFs. MIT/Apache-2.0.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month3 dated mentions

Observed mentions: 2026-02-24 14:15:41 UTC to 2026-10-26 11:22:53 UTC.

0122026-02-01 00:00:00 UTC to 2026-03-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsFeb 20262026-03-01 00:00:00 UTC to 2026-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-01 00:00:00 UTC to 2026-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-05-01 00:00:00 UTC to 2026-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-06-01 00:00:00 UTC to 2026-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJun 20262026-07-01 00:00:00 UTC to 2026-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-08-01 00:00:00 UTC to 2026-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-01 00:00:00 UTC to 2026-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-01 00:00:00 UTC to 2026-11-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 commentsOct 2026

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Feb 20262026-02-01 00:00:00 UTC2026-03-01 00:00:00 UTC101
Mar 20262026-03-01 00:00:00 UTC2026-04-01 00:00:00 UTC000
Apr 20262026-04-01 00:00:00 UTC2026-05-01 00:00:00 UTC000
May 20262026-05-01 00:00:00 UTC2026-06-01 00:00:00 UTC000
Jun 20262026-06-01 00:00:00 UTC2026-07-01 00:00:00 UTC000
Jul 20262026-07-01 00:00:00 UTC2026-08-01 00:00:00 UTC000
Aug 20262026-08-01 00:00:00 UTC2026-09-01 00:00:00 UTC000
Sep 20262026-09-01 00:00:00 UTC2026-10-01 00:00:00 UTC000
Oct 20262026-10-01 00:00:00 UTC2026-11-01 00:00:00 UTC202

What Hacker News says

3 sources
> https://github.com/yfedoseev/pdf_oxide which this project builds on completely misses https://github.com/fschutt/printpdf which was already developed with tons of fixes over years (both with and without AI). MIT license and also builds on WASM with a demo running on https://fschutt.github.io/printpdf/ It seems like fschutt/printpdf is your project. You should definitely at least disclose it in your comment, if that's the case.
In PaperPilot – Zero-Cloud, Pure-Rust PDF Engine with WASM and MCP
Why do people try to vibecode PDF engines that already exist in Rust? https://github.com/yfedoseev/pdf_oxide which this project builds on completely misses https://github.com/fschutt/printpdf which was already developed with tons of fixes over years (both with and without AI). MIT license and also builds on WASM with a demo running on https://fschutt.github.io/printpdf/ One Google search (yeah I'm old, sorry, nobody "Googles" anymore) for "rust pdf library" shows this. Yet people now redo and redo and redo everything again just to have "their" semi-broken copy of a HTML -> PDF renderer (and then run into the same edge cases that were already fixed before). There are lots of edge cases in typography especially, I recently had a lot of fixes as I was trying to ocr-and-cleanup a 1732 scan of some books with Claude auto-extracting the font. T
Read the rest
here were a ton of edge cases in the layout, esp. related to column, footnote and sidebar handling, or things like "Hebrew RTL text accidentally disappears if text breaks weirdly", "1-bit image compression", etc. I have nothing against AI, I use it heavily myself, but what is annoying is people completely ignoring the years of work of existing projects that do the exact same thing - instead of just forking, but instead re-tokenizing the exact same work again. Most likely the author didn't research "does this already exist" and that's annoying, then you get 100 of similar projects reinventing the world with tokens again and again. Sometimes its beneficial and can lead to faster exploration of new approaches, but in most cases its not and misses edge cases that were solved before.
In PaperPilot – Zero-Cloud, Pure-Rust PDF Engine with WASM and MCP
PDF Oxide is a PDF text extraction and manipulation library written in Rust with Python bindings (via PyO3). It is MIT licensed. I started building it when I needed fast, reliable PDF extraction for a data pipeline and couldn't find a permissively-licensed option that was both fast and handled edge cases well. PyMuPDF is fast but AGPL. pypdf is MIT but 15x slower. pdfplumber is great for tables but too slow for batch processing. Technical Architecture: Zero-Dependency Parser: Built from scratch in Rust using nom combinators (no MuPDF, no Poppler). Layout Analysis: Uses XY-Cut projection partitioning for multi-column layout detection. Robust Font Decoding: Implements a multi-level encoding fallback chain (ToUnicode CMap -> Encoding differences -> Base encoding -> CIDFont CMap -> Adobe Glyph List -> Identity). This is where most libraries p
Read the rest
roduce garbage on CJK documents. Benchmarks (Mean / p99 / Pass Rate) on 3,830 PDFs: pdf_oxide: 0.8ms / 9ms / 100% (MIT) PyMuPDF: 4.6ms / 28ms / 99.3% (AGPL-3.0) pypdfium2: 4.1ms / 42ms / 99.2% (Apache/BSD) pypdf: 12.1ms / 97ms / 98.4% (BSD) Performance was profiling-driven. A bulk page tree cache turned a 10,000-page PDF from 55s to 332ms (O(n^2) to O(1)). Quick Start (Python): from pdf_oxide import PdfDocument doc = PdfDocument("document.pdf") for i in range(doc.page_count()): print(doc.extract_text(i)) Quick Start (Rust): use pdf_oxide::PdfDocument; let mut doc = PdfDocument::open("document.pdf")?; for i in 0..doc.page_count()? { println!("{}", doc.extract_text(i)?); } Capabilities: Text/Markdown/Image extraction, PDF creation from Markdown/HTML, form filling, and OCR (PaddleOCR via ONNX Runtime). GitHub: https://github.com/yfedoseev/pdf_oxide Docs: https://oxide.fyi I would love to hear what you think—especially if you throw it at PDFs that other libraries struggle with. The best way to improve is finding edge cases in the wild.
In PDF Oxide – Fast PDF library in Rust with Python bindings – 0.8ms,100% pass rate

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.