π A comprehensive, curated list of open-source libraries, tools, and projects for document processing, intelligence, and data extraction. Synthesized from community recommendations, established projects, and emerging research.
- π Curated Lists & Resources
- π§ General Document Processing
- π― Document Intelligence Platforms
- π Document Management Systems
- π οΈ SDKs & API Toolkits
- π PDF Text & Data Extraction
- π§ Layout-Aware Document Parsing
- ποΈ OCR (Optical Character Recognition)
- π Table Extraction
- π Document Format Conversion
- π€ RAG & LLM Applications
- π― Specialized Document Tasks
- π Annotation & Benchmarks
- π§ Utilities & Helper Tools
- π€ Contributing
- π License
π Excellent starting points with aggregated lists of tools, datasets, and research papers in the document AI space.
β‘ Frameworks and comprehensive toolkits designed to orchestrate complex document processing workflows by integrating multiple specialized models and tools.
| Tool | Description | Link |
|---|---|---|
| unstructured | An open-source Python toolkit for converting diverse document formats (PDFs, HTML, Word, etc.) into structured data optimized for language model workflows. Features modular ingestion, chunking, and pre-processing. | GitHub |
| deepdoctection | A Python orchestration framework that integrates various deep learning models for document extraction tasks, including layout analysis, OCR, and table recognition. It acts as a pipeline manager rather than implementing models itself. | GitHub |
| Data Prep Kit | An open-source project from IBM focused on cleaning, transforming, and tracing unstructured data to prepare it for use in Large Language Models (LLMs). | GitHub |
| PDF-Extract-Kit | A comprehensive toolkit for extracting high-quality content from PDFs. It integrates state-of-the-art models for layout detection (YOLO, LayoutLMv3), OCR (PaddleOCR), and table recognition. | GitHub |
| pydoxtools | An AI-based document analysis tool supporting various formats. It is designed for low resource consumption and includes features for table extraction and other downstream tasks. | GitHub |
| OpenContracts | An Apache2-licensed annotating platform designed to preserve document layout and export positional data, useful for creating labeled datasets for model training. | GitHub |
| BeeAI | An open-source agent-to-agent platform from IBM for building multi-agent AI workflows. Relevant for orchestrating complex AI pipelines that include document intelligence tasks. | GitHub |
These are end-to-end platforms designed to build, deploy, and manage document processing workflows, often with a low-code or no-code interface.
| Tool | Description | Link |
|---|---|---|
| Unstract | An open-source, no-code platform for building LLM-powered ETL pipelines and APIs to extract structured data from unstructured documents. Features a workflow studio and prompt studio. | GitHub |
These platforms provide comprehensive solutions for storing, versioning, managing, and searching enterprise documents.
| Tool | Description | Link |
|---|---|---|
| OpenKM | A mature, enterprise-grade open-source Document Management System (DMS) built in Java. It provides features for storage, version control, workflows, and advanced search. | GitHub |
These are libraries designed to simplify interaction with commercial or third-party Document AI APIs.
| Tool | Description | Link |
|---|---|---|
| python-documentai-toolbox | A Python SDK from Google to simplify interactions with the Google Cloud Document AI API suite, wrapping common operations for easier use. | GitHub |
π Libraries focused on the fundamental task of extracting text, images, and metadata from PDF files. The foundation for many document processing applications.
| Tool | Description | Link |
|---|---|---|
| pypdf | A widely used, pure-Python library for a full range of PDF manipulations: splitting, merging, cropping, encryption, and extracting text and metadata. It is actively maintained and serves as a successor to the original PyPDF2. | GitHub |
| PyMuPDF (fitz) | A high-performance Python library praised for its speed and superior handling of text extraction, especially for paragraph chunking and retaining granular layout information. Also extracts images and metadata. | GitHub |
| pypdfium | A Python wrapper for Google's high-performance PDFium library. It is emerging as a top contender for fast and accurate text extraction from PDFs. |
GitHub |
| pdfplumber | A popular library for detailed extraction of text characters, lines, rectangles, and tables from PDFs. Its visual debugging features are particularly useful for analyzing document structure. | GitHub |
| pdfminer.six | A community-maintained fork of the original pdfminer, focused on extracting and analyzing text content and layout information from PDF documents. |
GitHub |
| Apache PDFBox | A mature and widely-used open-source Java library for working with PDF documents. It supports content extraction, PDF creation, manipulation, and more. | Homepage |
| PdfPig | A comprehensive open-source library for extracting text and other content from PDF files, written in C# for the .NET ecosystem. | GitHub |
| borb | A pure-Python library for reading, writing, and manipulating PDFs. It represents the PDF's structure hierarchically, similar to JSON, which can simplify complex operations. | Homepage |
| PDFium | Google's open-source C++ library for rendering and parsing PDF files. It's the core engine behind Google Chrome's PDF viewer and can be used for robust text and metadata extraction. | Homepage |
| pymupdf4llm | An open-source tool built on PyMuPDF to extract and convert PDF content into Markdown optimized for Large Language Models (LLMs), preserving semantic structure. | Homepage |
This category includes advanced tools that leverage deep learning to understand the visual and structural layout of a document, going beyond simple text extraction to identify elements like paragraphs, lists, titles, and figures.
| Tool | Description | Link |
|---|---|---|
| LayoutParser | A deep learning toolkit for Document Image Analysis (DIA). It provides a unified API and pre-trained models for detecting and analyzing the layout of document images. | GitHub |
| LayoutLM / UniLM | A family of powerful, pre-trained multimodal transformer models from Microsoft (including LayoutLMv3 and LiLT) that combine text, layout, and visual information for state-of-the-art document understanding tasks. | GitHub |
| LiLT | Language-independent Layout Transformer for universal document layout analysis, extending LayoutLM to work effectively across multiple languages without language-specific training. | GitHub |
| ViBERTgrid-PyTorch | A model that grids document pages and applies a BERT-based architecture to understand document layout and structure. | GitHub |
| RFUND | A project from SCUT-DLVCLab focused on form understanding with visually-rich features. Note: Repository appears to be a research artifact. | GitHub |
| Donut | An OCR-free Document Understanding Transformer (clovaai/donut) that directly parses a document image into a structured output (e.g., JSON) without an explicit OCR step, excelling at information extraction tasks. |
GitHub |
| Docling | A tool designed to accurately interpret PDF content by considering its layout, reading order, tables, code blocks, and images. Now a commercial product. | Homepage |
| Doc2Graph | A framework that uses Graph Neural Networks (GNNs) for task-agnostic document understanding, leveraging the structural and relational patterns within a document. | GitHub |
πΌοΈ Essential engines for converting scanned documents or images of text into machine-readable text. Modern OCR tools often incorporate deep learning for higher accuracy.
| Tool | Description | Link |
|---|---|---|
| SuryaOCR | A state-of-the-art OCR engine demonstrating superior accuracy and speed on GPUs, especially for complex documents. Features built-in layout detection and reading order extraction. Licensed under GPL 3.0. | GitHub |
| Tesseract | The de facto open-source OCR engine. It is highly reliable, CPU-friendly, supports numerous languages, and has a permissive Apache 2.0 license, making it a popular choice for many applications. | GitHub |
| PaddleOCR | A strong all-around OCR toolkit with multilingual support that delivers high accuracy. It performs well on CPUs and is robust against image distortions and complex layouts. | GitHub |
| OCRmyPDF | A crucial utility that adds a searchable text layer to scanned PDF files by running an OCR engine (typically Tesseract) on the document images and embedding the recognized text. | GitHub |
| EasyOCR | A popular Python library that provides a ready-to-use OCR model with support for a wide range of languages. | GitHub |
π Tools specifically optimized for the challenging task of identifying and extracting structured tabular data from both text-based and image-based documents.
| Tool | Description | Link |
|---|---|---|
| Camelot | A powerful Python library for extracting tables from text-based PDFs. It offers high control through configurable settings, provides accuracy metrics, and exports to pandas DataFrames and various file formats (CSV, JSON, etc.). Includes a web UI called Excalibur. | Homepage |
| Tabula | A well-known open-source tool and Python library for liberating data tables trapped inside PDF files. It is a popular choice for its simplicity and effectiveness with text-based PDFs. | Homepage |
| Table Structure Recognition | A research project (whn09/table_structure_recognition) that uses modern object detection models (YOLOv5/v8) for advanced table detection and structure recognition from images. |
GitHub |
| Tabulo | A tool specifically designed to extract tables from images, useful when dealing with scanned documents or screenshots. | No public repository link found in sources. |
This category contains tools designed to convert documents from one format to another, with a focus on preserving structure for downstream use.
| Tool | Description | Link |
|---|---|---|
| Marker | A versatile tool that converts various formats (PDF, EPUB, DOCX, etc.) into clean, LLM-friendly Markdown. It is optimized for speed and multilingual support. | GitHub |
| Pandoc | A universal document converter. While not a PDF-first tool, it's often used in workflows (e.g., PDF β Word via Adobe Acrobat β Markdown via Pandoc) to achieve high-fidelity conversions. | Homepage |
| Markitdown | A Microsoft open-source Python library to convert a wide range of file types (PDF, Office, images, audio) into clean, LLM-friendly Markdown. | GitHub |
| pdf2md.morethan.io | A free, privacy-focused offline converter that processes PDF-to-Markdown conversions directly in the browser without uploading files to a server. | Homepage |
| NoteGPT.io Converter | A free online PDF-to-Markdown converter that includes AI features like summarization and mind maps. Praised for its speed and format retention. | Homepage |
These are tools and frameworks focused on Retrieval-Augmented Generation (RAG) and building applications for interacting with documents using LLMs.
| Tool | Description | Link |
|---|---|---|
| VDocRAG | A Retrieval-Augmented Generation (RAG) framework from NTT tailored for visually-rich documents, enabling Q&A over complex layouts. | GitHub |
| DocGPT | An open-source application that enables users to have interactive conversations with their documents using Large Language Models. | GitHub |
| daniel | An open-source, local-first alternative for document interaction (chatting with documents) powered by LLMs. | GitHub |
This category includes models and projects designed for highly specific document intelligence tasks beyond general parsing or extraction.
| Tool | Description | Link |
|---|---|---|
| SlideVQA | A project focused on Visual Question Answering for slides and presentations, understanding both text and visual elements. | GitHub |
| GOSE | A model for Grid-based Object Spotting and Extraction, specializing in detecting and recognizing text in documents. | GitHub |
| PEneo | A research project focused on the specialized task of price tag extraction and linking from documents or images. | GitHub |
These are tools for creating labeled data, benchmark datasets for model evaluation, and projects for performance comparison.
| Tool | Description | Link |
|---|---|---|
| pawls | PDF Annotations with Labels and Structure. An annotation tool from the Allen Institute for AI for creating structured, labeled datasets from PDFs. | GitHub |
| ReadingBank | A benchmark dataset consisting of 1.4 million annotated pages from 500 academic articles for deep learning-based document analysis. | GitHub |
| webvicob | A web-visual-corpora benchmark from Clova AI for various document AI tasks, including layout analysis and information extraction. | GitHub |
| pdf-text-extraction-benchmark | A project for benchmarking the performance and accuracy of various Python-based PDF text extraction libraries. | GitHub |
Miscellaneous helper tools for common document processing tasks.
| Tool | Description | Link |
|---|---|---|
| Born digital pdf scanner | A command-line utility to determine if a PDF file is 'born-digital' (text-based) or scanned (image-based). | GitHub |
Your contributions are always welcome! Please read the contribution guidelines first.
- π΄ Fork this repository
- π Add your awesome tool/library to the appropriate section
- π Ensure your addition follows the format:
| π― **Tool Name** | Description | [](link-url) | - β
Make sure the tool is:
- Open source (or has significant free features)
- Actively maintained (recent commits/releases)
- Well documented
- Relevant to document processing/intelligence
- π Create a Pull Request
- π Documentation: Tool should have clear documentation
- π Activity: Recent activity (commits, releases, or issues)
- β Community: Some level of community adoption
- π― Relevance: Direct relevance to document processing/AI
This work is licensed under a Creative Commons Zero v1.0 Universal license.
Made with β€οΈ by the document processing community