# PDF Oxide — The Fastest PDF Library. 19 Language Bindings. > The fastest PDF library with 19 language bindings: Python, Rust, Go, C#, JavaScript (Node.js), > JavaScript (WASM), Java, PHP, Ruby, C++, Swift, Kotlin, Dart, R, Julia, Zig, Scala, Clojure, > Objective-C, Elixir. Also available via C ABI (422 FFI functions) and MCP server. > Text extraction, image extraction, PDF creation, editing, and markdown conversion. > Mean 0.8ms per document. 100% pass rate on 3,830 real-world PDFs. > 5× faster than PyMuPDF, 15× faster than pypdf. > MIT / Apache-2.0 license. Current version: 0.3.69. - Python: `pip install pdf-oxide` - Rust: `cargo add pdf_oxide` - JavaScript (Node.js): `npm install pdf-oxide` - Go: `go get github.com/yfedoseev/pdf_oxide` - C#: `dotnet add package PdfOxide` - Java: via JNI bindings (see getting-started/java) - Full documentation in one file: https://pdf.oxide.fyi/llms-full.txt - Source code: https://github.com/yfedoseev/pdf_oxide ## Getting Started - [Python Quick Start](https://pdf.oxide.fyi/docs/getting-started/python): Install with pip, extract text, create PDFs, edit documents - [Rust Quick Start](https://pdf.oxide.fyi/docs/getting-started/rust): Add to Cargo.toml, PdfDocument and Pdf APIs, error handling - [Go Quick Start](https://pdf.oxide.fyi/docs/getting-started/go): go get, GoDoc API, goroutine-safe - [C# Quick Start](https://pdf.oxide.fyi/docs/getting-started/csharp): NuGet package, .NET 6+ support - [JavaScript (Node.js)](https://pdf.oxide.fyi/docs/getting-started/javascript-node): npm install, async API, Buffer support - [JavaScript (WASM)](https://pdf.oxide.fyi/docs/getting-started/javascript-wasm): Browser and edge runtime support - [Java Quick Start](https://pdf.oxide.fyi/docs/getting-started/java): Maven/Gradle, JNI-based bindings - [PHP Quick Start](https://pdf.oxide.fyi/docs/getting-started/php): Composer package, PHP 8+ support - [Ruby Quick Start](https://pdf.oxide.fyi/docs/getting-started/ruby): gem install, Bundler support - [C++ Quick Start](https://pdf.oxide.fyi/docs/getting-started/cpp): CMake integration, header-only wrapper - [Swift Quick Start](https://pdf.oxide.fyi/docs/getting-started/swift): Swift Package Manager, iOS/macOS - [Kotlin Quick Start](https://pdf.oxide.fyi/docs/getting-started/kotlin): Gradle, JVM and Android support - [Dart Quick Start](https://pdf.oxide.fyi/docs/getting-started/dart): pub.dev package, Flutter support - [R Quick Start](https://pdf.oxide.fyi/docs/getting-started/r): CRAN package, tidyverse-friendly API - [Julia Quick Start](https://pdf.oxide.fyi/docs/getting-started/julia): Pkg.add, native Julia bindings - [Zig Quick Start](https://pdf.oxide.fyi/docs/getting-started/zig): build.zig integration, zero-cost FFI - [Scala Quick Start](https://pdf.oxide.fyi/docs/getting-started/scala): sbt/Maven, JVM-based bindings - [Clojure Quick Start](https://pdf.oxide.fyi/docs/getting-started/clojure): Leiningen/deps.edn, JVM bindings - [Objective-C Quick Start](https://pdf.oxide.fyi/docs/getting-started/objc): CocoaPods/SPM, macOS/iOS - [Elixir Quick Start](https://pdf.oxide.fyi/docs/getting-started/elixir): Mix package, NIFs via Rustler - [CLI Tool](https://pdf.oxide.fyi/docs/getting-started/cli): Command-line interface for common operations - [MCP Server](https://pdf.oxide.fyi/docs/getting-started/mcp): Model Context Protocol server for AI agents ## Extraction - [Text Extraction](https://pdf.oxide.fyi/docs/extraction/text): extract_text, extract_spans, extract_chars with position and font data - [Image Extraction](https://pdf.oxide.fyi/docs/extraction/images): Content streams, Form XObjects, inline images - [Markdown Conversion](https://pdf.oxide.fyi/docs/extraction/markdown): to_markdown with heading detection and structure preservation - [HTML Conversion](https://pdf.oxide.fyi/docs/extraction/html): to_html preserving layout and formatting - [Form Data](https://pdf.oxide.fyi/docs/extraction/forms): FormField extraction, FDF/XFDF export - [Annotations](https://pdf.oxide.fyi/docs/extraction/annotations): Bookmarks, outline, all annotation types - [Metadata & XMP](https://pdf.oxide.fyi/docs/extraction/metadata): XMP properties, page labels, catalog - [Text Search](https://pdf.oxide.fyi/docs/extraction/search): Regex, case-insensitive, page-level results - [Page Rendering](https://pdf.oxide.fyi/docs/extraction/rendering): Render pages to PNG/JPEG images (Rust, tiny-skia) - [Digital Signatures](https://pdf.oxide.fyi/docs/extraction/signatures): Verify and inspect PAdES/CAdES signatures ## Creation - [From Markdown](https://pdf.oxide.fyi/docs/creation/from-markdown): Pdf::from_markdown with full syntax support - [From HTML](https://pdf.oxide.fyi/docs/creation/from-html): Pdf::from_html with element support - [From Images](https://pdf.oxide.fyi/docs/creation/from-images): Single and multi-page from PNG/JPEG/TIFF - [PdfBuilder API](https://pdf.oxide.fyi/docs/creation/builder): Fluent builder with page size, margins, fonts - [DocumentBuilder](https://pdf.oxide.fyi/docs/creation/document-builder): Low-level page builder with annotations - [Form Creation](https://pdf.oxide.fyi/docs/creation/forms): Text fields, checkboxes, radio buttons, dropdowns - [Annotations](https://pdf.oxide.fyi/docs/creation/annotations): 20+ annotation types - [Tables](https://pdf.oxide.fyi/docs/creation/tables): TableRenderer API - [Graphics](https://pdf.oxide.fyi/docs/creation/graphics): Paths, patterns, shadings, transparency - [QR & Barcodes](https://pdf.oxide.fyi/docs/creation/barcodes): QR codes, Code128, EAN-13, UPC-A - [Office Conversion](https://pdf.oxide.fyi/docs/creation/office-conversion): DOCX, XLSX, PPTX to PDF (OfficeConverter) - [Digital Signatures](https://pdf.oxide.fyi/docs/creation/digital-signatures): Sign PDFs with PAdES/CAdES, PKCS#12 certificates ## Editing - [Overview](https://pdf.oxide.fyi/docs/editing/overview): DocumentEditor, open/save workflow - [Text Editing](https://pdf.oxide.fyi/docs/editing/text): DOM-style find/replace, PdfText methods - [Page Operations](https://pdf.oxide.fyi/docs/editing/pages): Rotate, crop, merge, extract - [Form Editing](https://pdf.oxide.fyi/docs/editing/forms): Get/set values, add/remove fields, flatten - [Annotation Editing](https://pdf.oxide.fyi/docs/editing/annotations): Modify, flatten, redact - [Image Manipulation](https://pdf.oxide.fyi/docs/editing/images): Reposition, resize, bounds - [Redaction](https://pdf.oxide.fyi/docs/editing/redaction): Apply redactions, remove content - [Encryption](https://pdf.oxide.fyi/docs/editing/encryption): AES-256, password protection ## Compliance - [PDF/A Validation](https://pdf.oxide.fyi/docs/compliance/pdf-a): Validation and conversion - [PDF/UA Accessibility](https://pdf.oxide.fyi/docs/compliance/pdf-ua): Accessibility checks - [PDF/X Print](https://pdf.oxide.fyi/docs/compliance/pdf-x): Print production validation - [Crypto Policy & FIPS](https://pdf.oxide.fyi/docs/compliance/crypto-policy): FIPS 140-2 mode, algorithm policy, CBOM ## Guides - [Classification & OCR](https://pdf.oxide.fyi/docs/guides/classification): Document classification, AI-powered categorization - [Model Management](https://pdf.oxide.fyi/docs/guides/model-management): Download and manage AI models for classification/OCR - [Extract Text for RAG](https://pdf.oxide.fyi/docs/guides/extract-text-from-pdf): Structured text extraction for AI pipelines - [PDF to Markdown for LLMs](https://pdf.oxide.fyi/docs/guides/pdf-to-markdown): Convert PDFs to clean Markdown for LLM context - [PDF for RAG Pipelines](https://pdf.oxide.fyi/docs/guides/pdf-for-rag): Chunking, embedding, and retrieval strategies - [Extract Tables](https://pdf.oxide.fyi/docs/guides/extract-tables-from-pdf): Table detection and structured extraction - [Fill PDF Forms](https://pdf.oxide.fyi/docs/guides/fill-pdf-forms): Programmatic form filling and flattening - [Merge & Split PDFs](https://pdf.oxide.fyi/docs/guides/merge-split-pdfs): Combine or split PDF documents - [Encrypt & Decrypt](https://pdf.oxide.fyi/docs/guides/encrypt-decrypt-pdf): Password-protect and unlock PDFs - [OCR Scanned PDFs](https://pdf.oxide.fyi/docs/guides/ocr-scanned-pdfs): OCR for image-only PDFs - [Batch Processing](https://pdf.oxide.fyi/docs/guides/batch-processing): Process thousands of PDFs efficiently - [Async & Concurrency](https://pdf.oxide.fyi/docs/guides/async): tokio, asyncio, goroutines integration - [Scoped Extraction](https://pdf.oxide.fyi/docs/guides/scoped-extraction): Region-of-interest extraction by coordinates - [XFA Forms](https://pdf.oxide.fyi/docs/guides/xfa-forms): Legacy XFA form support - [Logging](https://pdf.oxide.fyi/docs/guides/logging): Structured logging and diagnostics ## Reference - [Rust API](https://pdf.oxide.fyi/docs/reference/api): Complete method reference - [Python API](https://pdf.oxide.fyi/docs/reference/python-api): Python bindings reference - [Go API](https://pdf.oxide.fyi/docs/reference/go-api): Go bindings reference - [C# API](https://pdf.oxide.fyi/docs/reference/csharp-api): C# bindings reference - [JavaScript (Node.js) API](https://pdf.oxide.fyi/docs/reference/javascript-node-api): Node.js bindings reference - [JavaScript (WASM) API](https://pdf.oxide.fyi/docs/reference/javascript-wasm-api): WASM bindings reference - [Page API](https://pdf.oxide.fyi/docs/reference/page-api): PdfPage and page-level methods - [Types & Enums](https://pdf.oxide.fyi/docs/reference/types): All public types ## Performance - [Benchmarks](https://pdf.oxide.fyi/docs/performance): 0.8ms mean, 3,830 PDFs, 5× faster than PyMuPDF in v0.3.8 ## Optional - [Changelog](https://pdf.oxide.fyi/docs/changelog): Version history - [vs Python Libraries](https://pdf.oxide.fyi/docs/comparison/python): PyMuPDF, pypdf, pdfplumber, pdfminer - [vs Rust Libraries](https://pdf.oxide.fyi/docs/comparison/rust): lopdf, printpdf, pdf-rs - [Rust API on docs.rs](https://docs.rs/pdf_oxide): Auto-generated API reference ## Links - GitHub: https://github.com/yfedoseev/pdf_oxide - PyPI: https://pypi.org/project/pdf-oxide/ - crates.io: https://crates.io/crates/pdf_oxide - docs.rs: https://docs.rs/pdf_oxide