PDFOxide
The Complete PDF Toolkit for Rust and Beyond
Extract, create, and edit PDFs with one library. Rust core with bindings for every language.
┌──────────────┐
│ Rust Core │
└──────┬───────┘
┌──────────┬─────────┼─────────┬──────────┐
▼ ▼ ▼ ▼ ▼
┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐
│Python │ │ Node │ │ WASM │ │ Go │ │ ... │
│ ✅ │ │ Soon │ │ Soon │ │ Soon │ │ │
└───────┘ └───────┘ └───────┘ └───────┘ └───────┘
📖 Documentation | 📝 Changelog | 🤝 Contributing | 🔒 Security
Quick Start
Extract text from PDF
let mut doc = open?;
let text = doc.extract_text?;
let markdown = doc.to_markdown?;
Create a new PDF
let mut builder = new;
builder.add_page
.text;
builder.save?;
Edit an existing PDF
let mut editor = open?;
editor.add_highlight?;
editor.add_text_field?;
editor.save?;
Why pdf_oxide?
- 📄 One library - Extract, create, and edit with unified API
- ⚡ Fast - Rust performance, 53ms average per PDF
- 🦀 Pure Rust - Memory-safe, no C dependencies
- 🌍 Multi-language - Rust core, bindings for Python, Node, WASM, Go
Features
| Extract | Create | Edit |
|---|---|---|
| Text & Layout | Documents | Annotations |
| Images | Tables | Form Fields |
| Forms | Graphics | Bookmarks |
| Annotations | Templates | Links |
| Bookmarks | Images | Content |
v0.3.0 Highlights: PDF/A conversion, PDF/X & PDF/UA validation, encryption, digital signatures, barcode generation, Office document conversion. See CHANGELOG.md for details.
Installation
Rust
[]
= "0.3"
Python
Examples
Rust - Extraction
use PdfDocument;
Python
=
=
=
For more examples, see the examples/ directory.
Performance
| Metric | Result |
|---|---|
| Average Per PDF | 53ms |
| Success Rate | 100% |
| Quality Score | 8.5+/10 |
Benchmarked on 103 diverse PDFs including forms, financial documents, and technical papers.
Building from Source
# Clone and build
# Run tests
# Build Python bindings
Documentation
- Getting Started (Rust) - Complete Rust guide
- Getting Started (Python) - Complete Python guide
- API Docs - Full API reference
- PDF Spec Reference - ISO 32000-1:2008
# Generate local docs
Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
# Development setup
License
Dual-licensed under MIT or Apache-2.0 at your option.
Citation
Built with 🦀 Rust + 🐍 Python | Status: ✅ Production Ready | v0.3.0 | 🚀 53ms per PDF