1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
[]
= "docling"
= "DocumentConverter and format backends for docling.rs (a Rust port of docling)."
= true
= true
= true
= true
= true
= true
= true
= true
= true
# The 25 MB output-regression corpus under tests/ is dev-only — keep it out of
# the published crate (and under crates.io's size limit). benches/ reference that
# corpus by path, so they're dev-only too.
= ["tests", "benches"]
[]
# The default build is the full converter. The ML pipelines and the HTTP
# client are feature-sliced so `--no-default-features` leaves the pure-Rust
# declarative converters (DOCX/HTML/MD/XLSX/PPTX/… → md/json) — a set that
# compiles for wasm32-unknown-unknown (issue #79, see crates/docling-wasm).
= ["pdf", "asr", "fetch-images", "vlm"]
# PDF/image/METS-GBS ML pipeline (pdfium + ONNX Runtime via docling-pdf).
= ["dep:docling-pdf", "docling-pdf/ml"]
# Text-layer-only PDF conversion (docling-pdf's pure-Rust parser, no pdfium/
# ONNX) — the wasm32 PDF path. Subsumed by `pdf`, which converts everything.
= ["dep:docling-pdf"]
# Audio → Whisper ASR (symphonia + ONNX Runtime via docling-asr).
= ["dep:docling-asr"]
# Blocking HTTP fetch of remote <img src> images (DocumentConverter::fetch_images).
= ["dep:ureq", "dep:url"]
# Remote VLM pipeline (#77): render PDF pages via pdfium and convert them
# through an OpenAI-compatible vision endpoint (LM Studio / Ollama / vLLM /
# hosted), parsing the returned DocLang with the existing reader. Rides on the
# crate's existing blocking HTTP client; no model code compiled in.
= ["pdf", "dep:ureq"]
# Optional headless-browser HTML pre-render (the `--use-web-browser` flag /
# `DocumentConverter::use_web_browser`). Off by default so the standard build
# stays pure-Rust with no browser/runtime dependency; enable with
# `--features web-browser`. Drives the system Chromium over the DevTools
# protocol purely from Rust (no Node/Playwright) via `headless_chrome`.
= ["dep:headless_chrome", "dep:tempfile"]
# Tokenization-aware chunking (docling-core's HybridChunker + HF tokenizer).
= ["docling-core/chunking"]
# GPU execution providers for the PDF/image ML pipeline (#74) — pass-through
# to docling-pdf; select at runtime with DOCLING_RS_EP (default: cpu).
= ["pdf", "docling-pdf/cuda"]
= ["pdf", "docling-pdf/tensorrt"]
= ["pdf", "docling-pdf/directml"]
= ["pdf", "docling-pdf/coreml"]
[]
= { = "0.26", = ["dates"] }
= "1.4.0"
= { = "1.0", = true }
# O_EXCL temp file with an unpredictable name for the browser pre-render page
# (avoids a predictable /tmp path a local attacker could pre-plant a symlink at).
= { = "3", = true }
= { = "../docling-asr", = "0.52.4", = true }
= { = "../docling-core", = "0.52.4" }
= { = "../docling-pdf", = "0.52.4", = true, = false }
= { = "0.25", = false, = ["png", "jpeg", "gif", "bmp", "tiff", "webp"] }
= "0.11"
= { = "0.13.4", = false }
= "0.41"
# Data-parallel fan-out over independent OOXML parts (XLSX sheets, PPTX
# slides) — see the profile in the module docs of `backend/xlsx.rs`.
= "1.10"
= "1.11"
= "0.20"
= "0.27.0"
= "1"
# Blocking HTTP client for fetching remote <img src> images when image fetching
# is enabled (DocumentConverter::fetch_images). 3.x matches the version `ort`
# already pulls in (so the graph keeps a single ureq); it needs Rust 1.85, which
# this crate already requires transitively via docling-pdf → ort.
= { = "3", = true }
# Resolve relative / protocol-relative <img src> against the page's base URL
# when the HTML was fetched from the web (fetch_images). Gated with ureq.
= { = "2", = true }
= { = "2.2", = false, = ["deflate"] }
[[]]
= "convert"
= "examples/convert.rs"
[[]]
= "stream"
= "examples/stream.rs"
[]
= "0.5"
[[]]
= "parse"
= false