Skip to main content
ClaudeWave

Full Rust port of Python docling

ToolsRegistry oficial106 estrellas29 forks● RustMITActualizado today
ClaudeWave Trust Score
97/100
✓ Verified
Passed
  • ✓Open-source license (MIT)
  • ✓Actively maintained (<30d)
  • ✓Healthy fork ratio
  • ✓Clear description
  • ✓Topics declared
  • ✓Documented (README)
Flags
  • !Install pipes a remote script into a shell (curl | sh)
Last scanned: 10/18/2026
Get started
Method: Clone
Terminal
git clone https://github.com/docling-project/docling.rs
1. Clone the repository.
2. Follow the README for installation and usage instructions.
Casos de uso

Resumen de Tools

# docling.rs

<p align="center">
  <img src="https://raw.githubusercontent.com/docling-project/docling.rs/refs/heads/master/docs/assets/logo.svg" alt="docling.rs — a duck feeding a document into a meat grinder" width="240">
</p>

<p align="center">
  <a href="https://github.com/docling-project/docling.rs/actions/workflows/ci.yml"><img src="https://github.com/docling-project/docling.rs/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
  <a href="https://docling-project.github.io/docling.rs/"><img src="https://img.shields.io/badge/demo-live-brightgreen" alt="Live browser demo"></a>
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/github/license/docling-project/docling.rs" alt="License MIT"></a>
  <a href="https://crates.io/crates/docling"><img src="https://img.shields.io/crates/v/docling?logo=rust" alt="crates.io version"></a>
  <a href="https://pypi.org/project/docling-rs/"><img src="https://img.shields.io/pypi/v/docling-rs?logo=pypi&logoColor=fff" alt="PyPI version"></a>
  <a href="https://www.npmjs.com/package/docling.rs"><img src="https://img.shields.io/npm/v/docling.rs?logo=npm&logoColor=fff" alt="npm version"></a>
  <a href="https://github.com/docling-project/docling.rs/releases"><img src="https://img.shields.io/github/v/release/docling-project/docling.rs?label=release&logo=github" alt="GitHub release"></a>
  <a href="https://crates.io/crates/docling"><img src="https://img.shields.io/crates/d/docling?label=crates.io%20downloads" alt="crates.io downloads"></a>
  <a href="https://pepy.tech/projects/docling-rs"><img src="https://static.pepy.tech/badge/docling-rs/month" alt="PyPI downloads/month"></a>
  <a href="https://www.npmjs.com/package/docling.rs"><img src="https://img.shields.io/npm/dm/docling.rs?label=npm%20downloads" alt="npm downloads/month"></a>
</p>

**docling.rs** converts documents — PDF, Office, HTML, scans, audio — into
Markdown, docling JSON and the other shapes an LLM or a RAG pipeline can
read. It is a Rust port of IBM's
[docling](https://github.com/docling-project/docling): the same output,
byte-for-byte, from one static binary. No Python, no PyTorch.

Pulling text out of a PDF is easy. Keeping its *structure* — headings in
order, tables as tables, scanned pages read — takes layout analysis, table
recognition and OCR. docling has the models for that, and a Python stack to
match. docling.rs runs the same models from a single binary: PDF 4.3× faster
than Python docling at under half the RAM, Office and HTML 20–60× faster, and
tables that survive — cell recall 0.94 where MarkItDown gets 0.31
([numbers](#conformance-with-microsoft-markitdown),
[method](./docs/PDF_CONFORMANCE.md#performance--review--profiling-notes)).

**Coming from [MarkItDown](https://github.com/microsoft/markitdown)?**
`pip install docling-rs`, swap one import —
`from docling_rs.markitdown import MarkItDown` — and keep its API, every
format it converts included, with real layout analysis, tables and OCR
behind it: [guide](./docs/MARKITDOWN.md),
[measured side by side](#conformance-with-microsoft-markitdown).


## Install

```bash
# CLI + models (Linux x64/arm64 prebuilt; builds from source elsewhere)
curl -fsSL https://raw.githubusercontent.com/docling-project/docling.rs/master/scripts/install/install.sh | bash
docling-rs example.pdf          # Markdown on stdout

# or from crates.io; --cli puts the models where the installed binary looks
cargo install docling-cli
curl -fsSL https://raw.githubusercontent.com/docling-project/docling.rs/master/scripts/install/download_dependencies.sh | sh -s -- --cli

pip install docling-rs          # Python — drop-in for docling's and MarkItDown's APIs
npm install docling.rs          # Node.js / Bun
cargo add docling               # Rust library

# containers, models baked in (-cuda variants for NVIDIA)
docker run --rm -v "$PWD:/data" ghcr.io/docling-project/docling-rs paper.pdf
docker run -p 127.0.0.1:5001:5001 ghcr.io/docling-project/docling-rs-serve
```

Office, HTML, Markdown and e-mail need no models. PDF, images and audio need
the ONNX models (layout, OCR, TableFormer, Whisper; under 1 GB): `install.sh`,
`--cli` and the containers bring them along; with `pip`, run
`python -c "import docling_rs; docling_rs.download_models()"` once; with `npm`
or a checkout, run `download_dependencies.sh` where you convert
([details](#getting-the-ml-models)). Windows: [`docs/WINDOWS.md`](./docs/WINDOWS.md).

**▶ [Try it in your browser](https://docling-project.github.io/docling.rs/)**
first — the converter as wasm, OCR included; nothing leaves your device.

## Use

```bash
docling-rs report.pdf > report.md               # Markdown (streamed page by page)
docling-rs report.pdf --to json                 # docling JSON; also html, text, latex, dclx, chunks, images
docling-rs --input ./docs --output ./out        # a directory tree; --jobs N in parallel
docling-rs https://example.com/paper.pdf        # URLs, data: URIs and stdin (`-`) too
docling-rs https://www.youtube.com/watch?v=ID   # a YouTube video: title, description, caption transcript (--to vtt keeps the timing)
docling-rs --help                               # every flag: OCR, page ranges, images, enrichment, redaction …
```

```python
from docling_rs import DocumentConverter       # was: from docling.document_converter import …
doc = DocumentConverter().convert("report.pdf").document
print(doc.export_to_markdown())
```

```js
import { convertFileAsync } from 'docling.rs'
const { content } = await convertFileAsync('report.pdf', { to: 'markdown' })
```

```rust
use docling::{DocumentConverter, SourceDocument};
let result = DocumentConverter::new().convert(SourceDocument::from_file("report.pdf")?)?;
println!("{}", result.document.export_to_markdown());
```

```bash
curl -F file=@report.pdf 'localhost:5001/v1/convert?to=md'   # the server; OpenAPI at /openapi.yaml
```

Same options, same outputs on every surface — every option in
[`docs/OPTIONS.md`](./docs/OPTIONS.md).

## Highlights

- **From Python docling:** `from docling_rs import DocumentConverter`;
  `result.document` is a genuine `DoclingDocument`
  ([migration notes](./crates/docling-py/README.md#migrating-from-python-docling)).
- **Every docling format, and a few it lacks** — the table under
  [Status](#status), each validated against live docling
  ([Conformance](#conformance-with-python-docling)).
- **Every output docling has:** Markdown (docling's, or a stricter dialect),
  docling JSON, HTML, plain text, DocLang, LaTeX, Pandoc AST (→ DOCX, EPUB,
  Typst… through pandoc), WebVTT subtitles, RAG chunks and page images
  ([output formats](./crates/docling/README.md#output-formats)).
- **From any language:** Rust, Python, Node.js / Bun, the browser (wasm,
  fully client-side), C, C++, C#, Go, Java and Swift through one C header,
  any HTTP client, the shell
  ([Integration](#integration--using-doclingrs-from-your-language)).
- **A drop-in server for docling-serve:** Open WebUI uses it as its Docling
  content-extraction engine — point *Docling Server URL* at
  `http://<host>:5001` — and n8n, Dify and LangChain clients work unchanged
  ([`docling-rs serve`](#http-conversion-api--docling-rs-serve),
  [Open WebUI setup](./crates/docling-serve/README.md#open-webui)).
- **AI agents (MCP):** `docling-rs mcp` gives Claude Desktop, Claude Code,
  Cursor or VS Code MarkItDown's `convert_to_markdown` tool, plus `convert`
  for JSON, chunks and the rest — `uvx docling-rs-mcp`, or
  `claude mcp add docling -- docling-rs mcp` ([MCP server](#mcp-server--docling-rs-mcp)).
- **LangChain:** `pip install "docling-rs[langchain]"` — langchain-docling's
  `DoclingLoader` on the Rust engine, one import to swap
  ([details](./crates/docling-py/README.md#langchain)).
- **AutoGen:** `pip install "docling-rs[autogen]"` — `DoclingIndexer` fills
  any AutoGen memory with chunks that carry their pages, `DoclingConvertTool`
  lets an agent read documents ([details](./crates/docling-py/README.md#autogen)).
- **Your own formats:** register a backend for a format docling.rs does not
  read — or to read one of its formats your way — from Rust, Python
  (`@docling_rs.register_backend(extensions=["rtf2"])`, and MarkItDown's
  `register_converter` and plugins) or Node.js, ahead of the built-in formats
  ([pluggable backends](./crates/docling/README.md#pluggable-backends)).
- **RAG:** `docling-rag` — chunk, embed and search with a REST API and a web
  UI ([RAG subsystem](#rag-subsystem)).
- **Runs where you are:** Linux x64 / arm64 / s390x and Windows prebuilt (CLI,
  wheels, npm), macOS from source, containers for amd64 and arm64; NVIDIA
  CUDA and TensorRT, DirectML, CoreML and WebGPU in the browser as opt-in
  accelerators ([GPU](./docs/MODELS.md#gpu-execution-providers-optional-off-by-default),
  [IBM Z](./docs/IBMZ.md)).

Developed with **Claude Code** and _[TENET](https://github.com/artiz/tenet/tree/master)_ (minimalistic AI-driven development framework).

## Status

Every format in docling's pipeline converts — plus a few docling lacks. A
file with no or an unknown extension, stdin, an upload or a `data:` URL is
typed by its content (`InputFormat::detect`, `docling_rs.detect_format`,
`detectFormat`: the packages, the OLE files, PDF, images, audio and video,
iWork, XML, JSON, notebooks, messages, …), and a file that fails under its
extension is checked by content and converted as what it really is, with a
warning.

| Category | Formats |
|---|---|
| Text & markup | Markdown, AsciiDoc, HTML, MHTML, LaTeX (multi-file arXiv projects, math, tables); plain text and source code (`.py`, `.yaml`, `.log`, … — any text file, as a code block or paragraphs), generic JSON / JSON Lines and XML (kept as code blocks); RSS / Atom / RDF feeds (`.rss`, `.atom`, `.rdf` or a bare `.xml`: the feed's title, each item's heading, date and body); Jupyter notebooks (`.ipynb`: markdown cells, code cells in the kernel's language, outputs on request) |
| Word processing | DOCX, Word 97–2004 `.doc` (and Word 6/95, 1.x/2.0), OD
autogendoclinglangchainlanggraphmarkdownpdfpdf-parserpdf-processingrag

Lo que la gente pregunta sobre docling.rs

¿Qué es docling-project/docling.rs?

+

docling-project/docling.rs es tools para el ecosistema de Claude AI. Full Rust port of Python docling Tiene 106 estrellas en GitHub y su última actualización registrada es del 2026-10-17.

¿Cómo se instala docling.rs?

+

Puedes instalar docling.rs clonando el repositorio (https://github.com/docling-project/docling.rs) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar docling-project/docling.rs?

+

Nuestro agente de seguridad ha analizado docling-project/docling.rs y le ha asignado un Trust Score de 97/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene docling-project/docling.rs?

+

docling-project/docling.rs es mantenido por docling-project. La última actividad registrada en GitHub es del 2026-10-17, con 2 issues abiertos.

¿Hay alternativas a docling.rs?

+

Sí. En ClaudeWave puedes explorar tools similares en /categories/tools, ordenados por popularidad o actividad reciente.

Despliega docling.rs en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: docling-project/docling.rs
[![Featured on ClaudeWave](https://claudewave.com/api/badge/docling-project-docling-rs)](https://claudewave.com/repo/docling-project-docling-rs)
<a href="https://claudewave.com/repo/docling-project-docling-rs"><img src="https://claudewave.com/api/badge/docling-project-docling-rs" alt="Featured on ClaudeWave: docling-project/docling.rs" width="320" height="64" /></a>

Más Tools

Alternativas a docling.rs
multica-ai
andrej-karpathy-skills
6mo ago

A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.

220.7k22.2k
ToolsInstall
nextlevelbuilder
ui-ux-pro-max-skill
3d ago

An AI skill that provides design intelligence for building professional UI/UX across multiple platforms.

136.9k14.5kPython
Toolsai-skillsantigravityInstall
JuliusBrussee
caveman
today

🪨 why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.

113.3k6.6kGo
ToolsaianthropicInstall
BerriAI
litellm
today

The fastest, litest AI Gateway. Rust core with Python SDK. Call 100+ LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]

61.5k12.4kPython
Toolsai-gatewayanthropicInstall
Alishahryar1
free-claude-code
today

Use Claude Code, Codex, VSCode, Pi, and OpenCode (and 6 other harnesses) for free (1.3B+ free tokens) from your terminal, app, IDE, or phone, and now from the browser with native browser sessions (multi-harness + multi-model) like OpenClaw (voice supported + ToS friendly)

61.3k9.6kPython
ToolsInstall
router-for-me
CLIProxyAPI
today

Wrap Antigravity, ChatGPT Codex, Claude Code, Grok Build, Muse Code, Devin as an OpenAI/Gemini/Claude/Codex compatible API service, allowing you to enjoy the free Gemini Series, GPT Series, Grok Series, Claude model through API

55.5k8.5kGo
Toolsantigravityclaude-codeInstall