blazegraph-io
Parse PDFs into semantic document graphs with bounding boxes. Built for GraphRAG.
55 pages → 3,022 text elements → 94 nodes → 1.1s
Install
No account needed. No API key. Runs entirely on your machine.
On first run, the CLI downloads a Java Runtime (~60MB) for PDF text extraction. It's cached for future use.
Usage
# Parse a PDF, output to stdout
# Write to a file
# Use a custom config
What You Get
Every node in the output graph has:
- Semantic location — tree position (
path: "2.3"), depth, breadcrumbs - Physical location — page number, bounding box (
x,y,width,heightin PDF points) - Content — the node's text with pre-calculated token count
- Relationships — parent and children UUIDs for tree navigation
This dual location model is what makes the output GraphRAG-ready: ground LLM outputs to specific physical locations in the original PDF.
Configuration
The default config works well for most documents. For specific document types, create a YAML config file and reuse it across similar documents.
See the Configuration Reference for all tuning parameters.
As a library
If you want to embed the parser in your own Rust application, use blazegraph-io-core instead.
Python SDK
A typed Python SDK is also available:
See the Python SDK Guide.
Hosted API
Same parser, no infrastructure. Available at blazegraph.io. 500 free credits on signup.
License
Licensed under either of:
- Apache License, Version 2.0
- MIT license
at your option.