language:
- en license: mit tags:
- spatial
- parser
- rust
- layout-analysis
- document-parsing
- bounding-box pipeline_tag: document-question-answering
⚡ RasgaPDF
The Blazing-Fast 2D Spatial PDF Parser powered by Pure Rust.
Extract exact physical coordinates (Raw X/Y) or structured blocks & tables at native hardware speeds.
Live Web / Space Demo • Two Modes • CLI Tool • Quickstart • Architecture • Spatial Schema
🎯 The Philosophy: Pure Spatial Parsing
Most PDF extraction tools make fragile guesses: they flatten multi-column layouts into corrupted text streams, mangle tables, and strip away 2D positional geometry.
RasgaPDF does one thing with uncompromising precision:
It returns the exact 2D physical spatial geometry of the PDF.
- Bounding Boxes Everywhere: Every character, word span, line, block, and table has exact coordinates
[x0, y0, x1, y1]. - Zero Lossy Heuristics: No broken markdown assumptions. Downstream LLMs, RAG pipelines, or vision-language models receive the true physical layout.
- Microsecond Rayon Parallelism: Multi-threaded page processing in pure Rust utilizing AVX2/AVX-512 SIMD.
- Polyglot First: Native C-ABI FFI bindings for Python, Node.js, Go, and C# (.NET).
⚡ Two Extraction Modes
RasgaPDF offers two distinct modes for different engineering needs:
⚡ Mode 1: Flat Physical Coordinates (Raw X/Y)
The fastest, most direct extraction possible. Returns an unnested list of physical 2D coordinates for every text span on the page, with zero block or table overhead:
- Latency: ~3 to 8 ms per page
- Supported Formats: Flat JSON, Formatted Text, TSV, or CSV
- Best For: Spatial RAG, 2D visualizers, vector indexing, OCR alignment, Unix pipelines with
awk/grep.
[Page 1] (X0: 50.00, Y0: 67.00, X1: 244.00, Y1: 83.00) [12.0pt] The Revolution of Artificial Intelligence
[Page 1] (X0: 50.00, Y0: 103.00, X1: 478.00, Y1: 119.00) [12.0pt] Artificial Intelligence (AI) has transformed...
🎯 Mode 2: Hierarchical Structured Document
Reconstructs the visual hierarchy into visual paragraphs (text_blocks), text lines (lines), spans, and auto-detects matrix tables via horizontal column projection:
- Latency: ~8 to 15 ms per page
- Output: Hierarchical tree
SpatialDocument->pages->text_blocks->lines->tables.
⚡ Performance Benchmark
Measured on Intel Core i7-1365U (10 Cores / 12 Threads, AVX2):
| Library / Tool | Language | Single Page | 50 Pages | Memory Footprint | Output Type |
|---|---|---|---|---|---|
| ⚡ RasgaPDF (Raw X/Y) | Rust (Native) | 7.7 ms | 95 ms | ~14 MB | Flat Raw Coordinates |
| 🚀 RasgaPDF (Structured) | Rust (Native) | 8.5 ms | 142 ms | ~18 MB | Spatial Blocks & Tables |
PyMuPDF (fitz) |
C / Python | 28.0 ms | 620 ms | ~45 MB | Text / Pixmap |
pdfplumber |
Python | 410.0 ms | 9,800 ms | ~140 MB | Python dicts |
pypdf |
Python | 95.0 ms | 2,100 ms | ~85 MB | Flat text string |
| Apache Tika | Java | 650.0 ms | 12,400 ms | ~320 MB | XHTML |
💻 Standalone CLI Tool
Install or build the standalone CLI binary:
# ⚡ MODE 1: Raw Physical Coordinates (Raw X/Y)
|
# 🎯 MODE 2: Hierarchical Structured Document
🚀 Rust Quickstart
Add rasgapdf to your Cargo.toml:
[]
= "0.1.3"
⚡ Mode 1: Raw Physical Coordinates (Raw X/Y)
Extract exact 2D bounding boxes [x0, y0, x1, y1] for every text span on the page with zero block overhead (~3 to 8 ms):
use parse_raw_file;
🎯 Mode 2: Hierarchical Structured Document
Reconstruct the visual hierarchy into visual paragraphs (text_blocks), text lines (lines), and auto-detect matrix tables:
use ;
📦 Native Bindings for Other Ecosystems
RasgaPDF provides native C-ABI bindings for other languages, each published with its own language-specific package and documentation:
| Language | Registry | Package / Installation | Documentation |
|---|---|---|---|
| Python | PyPI | pip install rasgapdf |
Python Guide & Examples |
| Node.js | npm | npm install rasgapdf |
Node.js Guide & Examples |
| Go | Go Module | bindings/go |
Go Bindings |
| C# / .NET | .NET Class Library | bindings/csharp |
C# Bindings |
🎨 Interactive Web Visualizer
🌐 Live Hugging Face Space (Zero Server Quota / Client-Side)
Test RasgaPDF instantly without installing anything:
- Live Demo: https://huggingface.co/spaces/martinsmessias/rasgapdf
- Zero Server Costs: Runs directly in your browser using client-side WebAssembly & PDF.js.
- Run on Your Personal Quota: Click
to clone into your own Hugging Face account with your personal compute quota.
🤝 Contributing & Community
Contributions are what make the open-source community thrive!
- Read our Contributing Guide to get started.
- Adhere to our Code of Conduct.
📄 License
RasgaPDF is licensed under the MIT License.
Copyright (c) 2026 Messias Martins.