What is deepseek-ocr.rs?
deepseek-ocr.rs reimplements the inference code for several open OCR vision-language models in Rust, on Hugging Face's Candle tensor library. The README documents three: DeepSeek-OCR, PaddleOCR-VL (0.9B) and dots.ocr; the source tree and issue tracker also cover DeepSeek-OCR 2 and GLM-OCR (GLM-OCR support landed in February 2026). Each comes in full precision or the project's own DSQ quantisation at Q4_K, Q6_K or Q8_0.
It ships two programs: a CLI for batch jobs and a Rocket web server that speaks the OpenAI /v1/chat/completions and /v1/responses formats, so Open WebUI or any OpenAI SDK can point at it. Backends are CPU, Apple Metal, Intel MKL (preview) and NVIDIA CUDA (alpha). Weights download on first run from Hugging Face or ModelScope, whichever answers faster.
The code is Apache-2.0; model weights carry their upstream licences. The repository has about 2,200 stars and is essentially one person's work (128 of 138 commits). The last push and release, v0.6.0-stage2e, were on 21 February 2026, eight months before this review.
Is deepseek-ocr.rs worth it?
deepseek-ocr.rs removes Python from vision-model OCR, and it is most convincing on Apple Silicon. The official DeepSeek-OCR release needs a Python and Transformers stack; this port is a native binary with Metal support, and the author's single-request benchmark on macOS shows the Rust decode loop finishing in about 30 seconds against 57 for the reference Python pipeline, a 1.88x gain. Image embedding was slower in Rust (6.4 seconds against 4.0), so the advantage is in generation, not in every stage.
Model choice is the real decision, and the README is candid about memory. DeepSeek-OCR needs roughly 13GB of RAM or VRAM with cache and activations; PaddleOCR-VL stays under about 9GB and suits 16GB laptops and CPU boxes; dots.ocr can need 30 to 50GB on high-resolution pages. The DSQ quantised variants cut weight memory but, for dots.ocr, leave the heavy vision-token cost untouched.
Maintenance is the weak point. One developer wrote nearly all of it, CUDA is still labelled alpha, and an open issue from February reports CUDA memory use on DeepSeek-OCR rising from about 11GB to 19GB between November and the latest commit. Nothing has been pushed since 21 February 2026, so a fix may not come; the project is not abandoned under a 12-month test, but it is close enough to price in.
The server needs care before it goes near a network. The generated config binds to 0.0.0.0 on port 8000 with no authentication, and the server fetches remote http(s) image URLs on request, which is an invitation to misuse on a shared host. Behind a proxy on a workstation it is a tidy local endpoint; on a cloud VM it needs one.
Where it earns its place
A solo developer on a 16GB M-series MacBook
Turn screenshots and receipts into Markdown from scripts, offline
Download the macOS bundle from the releases page, select paddleocr-vl, and call the CLI with --device metal. Free; PaddleOCR-VL keeps memory under about 9GB, leaving room for an editor and browser.
A small team already running Open WebUI internally
Let staff drop a scanned page into chat and get the text back
Run deepseek-ocr-server on one workstation behind the team's reverse proxy and add it as an OpenAI connection; the model list exposes deepseek-ocr and paddleocr-vl. The risk is the default open bind and the alpha CUDA path if the box has an NVIDIA card.
Before you commit
- Setup
- Prebuilt macOS, Alpine Linux and Windows (CUDA 12.4 and 13.0) bundles on the releases page, or build from source with Rust 1.78+ and --release; the first run downloads about 6.3GB of DeepSeek-OCR weights.
- Integrations
- OpenAI-compatible /v1/chat/completions, /v1/responses and /v1/models; works with Open WebUI and OpenAI SDKs. No published crate or Python binding (a binding request is open).
- Data and privacy
- Runs locally; network use is limited to weight downloads from Hugging Face or ModelScope and any remote image URLs a client sends. Apache-2.0 code, upstream model licences for weights.
- Cost at scale
- Free software; hardware is the cost. About 13GB of RAM or VRAM for DeepSeek-OCR, under about 9GB for PaddleOCR-VL, 30 to 50GB for dots.ocr on large pages, per the README.
- Limits
- CUDA alpha; about 16 open issues, including repeated-output and ignored-prompt reports; chat history is collapsed to the last user turn; large images hit Rocket's body limit unless you raise it in source.
What's good
- No Python: one binary with CLI and OpenAI-compatible server
- Metal backend; author reports 1.88x faster decode than Python
- Several OCR models, including PaddleOCR-VL under 10GB
- Q4_K to Q8_0 quantised variants
What's not
- One maintainer; no push since 21 February 2026
- CUDA support is alpha, with an open memory regression
- Server binds 0.0.0.0 with no auth and fetches remote URLs
- dots.ocr can need 30 to 50GB of memory
Best for
Developers on Apple Silicon or CPU-only machines who want a local OCR model behind an OpenAI-style API without a Python stack.
deepseek-ocr.rs alternatives
deepseek-ocr.rs: common questions
- Is deepseek-ocr.rs worth it?
- deepseek-ocr.rs puts a modern OCR model behind an OpenAI endpoint on a Mac with no Python, but it is a one-person project that went quiet in February. We rate it 3.6 out of 5.
- How much does deepseek-ocr.rs cost?
- Free under Apache-2.0; model weights follow their upstream licences.
- What are the downsides of deepseek-ocr.rs?
- One maintainer; no push since 21 February 2026; cUDA support is alpha, with an open memory regression; server binds 0.0.0.0 with no auth and fetches remote URLs; dots.ocr can need 30 to 50GB of memory.
- Who is deepseek-ocr.rs best for?
- Developers on Apple Silicon or CPU-only machines who want a local OCR model behind an OpenAI-style API without a Python stack.
- How much does deepseek-ocr.rs cost for a team or in production?
- Free software; hardware is the cost. About 13GB of RAM or VRAM for DeepSeek-OCR, under about 9GB for PaddleOCR-VL, 30 to 50GB for dots.ocr on large pages, per the README.
- Is deepseek-ocr.rs safe for company data?
- Runs locally; network use is limited to weight downloads from Hugging Face or ModelScope and any remote image URLs a client sends. Apache-2.0 code, upstream model licences for weights.
- What are the best deepseek-ocr.rs alternatives?
- The closest alternatives we have reviewed are franken_ocr, Xberg (formerly Kreuzberg), Ocrs and Ollama.
Answers checked Oct 26, 2026.