Was ist ocr-rs (formerly rust-paddle-ocr)?
ocr-rs ist ein Rust-Crate, mit dem du die Erkennungs- und Detektionsmodelle von PaddleOCR außerhalb von Python ausführst. Bis zum 9. September 2026 hieß es rust-paddle-ocr, dann wurde das Repository umbenannt; die alte URL leitet weiter. Die Modelle laufen auf MNN, der schlanken Inferenz-Laufzeitumgebung von Alibaba, die das Crate als nativen Code einbindet. Nach außen ist es also Rust, aber nicht durchgehend reines Rust.
Es unterstützt PP-OCRv4, PP-OCRv5 und die drei Stufen von PP-OCRv6 (tiny, small, medium). Die v6-Modelle small und medium decken 50 Sprachen ab, darunter vereinfachtes und traditionelles Chinesisch, Japanisch und 46 Sprachen in lateinischer Schrift; Koreanisch, Kyrillisch, Arabisch, Devanagari, Thai, Griechisch, Tamil und Telugu nutzen die schriftspezifischen v5-Modelle. Dazu kommen ein robuster Modus für gemischten horizontalen und vertikalen Text und Bounding Boxes pro Zeichen für die Textauswahl in Bildbetrachtern. GPU-Backends gibt es für CUDA, Vulkan, Metal und OpenCL.
Das Crate steht bei Version 2.4.1 (5. August 2026) mit etwa 85.000 Downloads auf crates.io; das Repository hat 339 Sterne unter Apache-2.0. Ein einzelner Entwickler hat 100 seiner 103 Commits geschrieben. Eine CLI und eine C-API liegen in separaten Repositories.
Lohnt sich ocr-rs (formerly rust-paddle-ocr)?
ocr-rs verdient sich seinen Platz über die Sprachabdeckung. Während Ocrs nur lateinische Schrift liest, bringt dieses Crate die Modelle von PaddleOCR, die Chinesisch, Japanisch und etwa ein Dutzend weitere Schriften lesen, mit einer API aus drei Zeilen in eine Rust-Anwendung: Detektor, Erkenner und Zeichenliste laden, dann recognize aufrufen.
Die technische Ausführung ist besser, als die 339 Sterne vermuten lassen. Das Crate unterscheidet zwischen den Stufen von PP-OCRv6, statt nur ein Modell mitzuliefern, weigert sich, stillschweigend auf die CPU auszuweichen, wenn ein angefordertes GPU-Backend fehlt, und führt in der CI einen Performance-Test aus, der fehlschlägt, wenn die Medianzeit der aktuellen Pipeline auf demselben Runner mehr als 15% über der der alten Pipeline liegt. Der optionale Modus für gedrehten Text wiederholt die Detektion auf um 90 und 270 Grad gedrehten Kopien, was für vertikalen Text in Japanisch und Chinesisch wichtig ist.
Die Kompromisse liegen bei Paketierung und Personal. MNN ist C++, Cross-Kompilierung bedeutet also vorgefertigte MNN-Binaries oder einen Bau aus dem Quellcode, und Windows-Builds mit GNU brauchen eine MinGW-Toolchain. Die Umwandlung von Paddle-Modellen in das MNN-Format läuft über ein Python-Skript, ein Python-Schritt kehrt also zur Build-Zeit zurück, auch wenn der Produktivbetrieb nie einen sieht. Der HTTP-Dienst, den das README erwähnt, ist nicht öffentlich, und fast jeder Commit stammt von einem einzigen Maintainer.
Im Vergleich zu einem Vision-Language-Modell wie PaddleOCR-VL 1.6 ist dies ein Leser auf Zeilenebene: Es liefert Textboxen mit Konfidenzwerten, keine Markdown-Tabellen und keine Lesereihenfolge. Für Belege, Schilder, Screenshots und Formulare in asiatischen Schriften auf bescheidener Hardware ist das oft der richtige Kompromiss, für ganze Dokumente nicht.
Wo es sich lohnt
Ein Entwickler einer Lese-App für japanische Manga und Screenshots
Nutzern ermöglichen, Text aus Bildern auszuwählen und zu kopieren, auch vertikale Zeilen
Lade PP-OCRv6 small, aktiviere RotatedTextMode::Robust und nutze die API zur Zeichenausrichtung, um jede Glyphe für die Auswahl ihrer Position zuzuordnen. Kostenlos; der robuste Modus fügt zusätzliche Detektionsdurchläufe auf gedrehten Kopien hinzu und kostet daher Latenz pro Bild.
Ein Engineer bei einem grenzüberschreitenden E-Commerce-Unternehmen, das Uploads von Händlern verarbeitet
Chinesischen und englischen Text auf Produktfotos und Rechnungen in großer Menge lesen
Betreibe das Crate in einem bestehenden Rust-Dienst auf CPU-Workern oder für mehr Durchsatz mit dem CUDA-Backend auf einem GPU-Knoten. Keine Seitengebühren; die Arbeit besteht darin, MNN für das Zielsystem zu bauen und eine Modellstufe festzuschreiben.
Bevor du dich festlegst
- Einrichtung
- cargo add ocr-rs, MNN-Modelldateien unter models/ ablegen (Paddle-Inferenzmodelle mit dem mitgelieferten Python-Skript umwandeln), dann cargo build --release; vorgefertigte MNN-Binaries werden, wo verfügbar, automatisch gewählt.
- Integrationen
- Rust-Crate; C-API in paddle-ocr-capi und eine CLI in newbee-ocr-cli (separate Repositories); GPU über die Features cuda, vulkan, metal und opencl.
- Daten und Datenschutz
- Läuft vollständig lokal, ohne Netzwerkaufrufe bei der Inferenz. Code unter Apache-2.0; die PaddleOCR-Modelle stehen unter Apache-2.0.
- Kosten im großen Maßstab
- Modelle der Mobilklasse auf der CPU halten die Rechenkosten niedrig; GPU-Backends sind optional. Keine kostenpflichtige Edition und kein gehosteter Dienst.
- Grenzen
- Etwa 6 offene Issues; Kaltstarts auf der GPU brauchen Feinabstimmung oder einen Kernel-Cache; Japanisch wird von der Stufe PP-OCRv6 tiny nicht unterstützt; CUDA aus dem Quellcode unter Windows erfordert MSVC.
Was gut ist
- PP-OCRv4, v5 und alle drei Stufen von v6
- Deckt CJK, Arabisch, Kyrillisch, indische Schriften und Thai ab
- Backends für CUDA, Vulkan, Metal und OpenCL mit expliziten Fehlermeldungen
- Modus für vertikalen Text und Boxen pro Zeichen
Was nicht
- Bindet MNN in C++ ein; kein reines Rust
- Die Modellumwandlung braucht ein Python-Skript
- Faktisch ein einziger Maintainer
- Nur Zeilentext und Boxen, keine Dokumentstruktur
Am besten für
Rust-Entwickler, die OCR für nicht lateinische Schriften, vor allem Chinesisch und Japanisch, in einer nativen Anwendung brauchen.
Alternativen zu ocr-rs (formerly rust-paddle-ocr)
ocr-rs (formerly rust-paddle-ocr): häufige Fragen
- Lohnt sich ocr-rs (formerly rust-paddle-ocr)?
- ocr-rs ist der praktische Weg, die Abdeckung von Chinesisch und Japanisch aus PaddleOCR in eine Rust-Binary zu bringen, sofern dich ein einzelner Maintainer und eine C++-Laufzeitumgebung nicht beunruhigen. Wir bewerten es mit 3.7 von 5.
- Was kostet ocr-rs (formerly rust-paddle-ocr)?
- Kostenlos unter Apache-2.0; die PaddleOCR-Modelle von Baidu stehen unter Apache-2.0.
- Welche Nachteile hat ocr-rs (formerly rust-paddle-ocr)?
- Bindet MNN in C++ ein; kein reines Rust; Die Modellumwandlung braucht ein Python-Skript; Faktisch ein einziger Maintainer; Nur Zeilentext und Boxen, keine Dokumentstruktur.
- Für wen eignet sich ocr-rs (formerly rust-paddle-ocr)?
- Rust-Entwickler, die OCR für nicht lateinische Schriften, vor allem Chinesisch und Japanisch, in einer nativen Anwendung brauchen.
- Was kostet ocr-rs (formerly rust-paddle-ocr) für ein Team oder im Produktivbetrieb?
- Modelle der Mobilklasse auf der CPU halten die Rechenkosten niedrig; GPU-Backends sind optional. Keine kostenpflichtige Edition und kein gehosteter Dienst.
- Ist ocr-rs (formerly rust-paddle-ocr) sicher für Firmendaten?
- Läuft vollständig lokal, ohne Netzwerkaufrufe bei der Inferenz. Code unter Apache-2.0; die PaddleOCR-Modelle stehen unter Apache-2.0.
- Was sind die besten Alternativen zu ocr-rs (formerly rust-paddle-ocr)?
- Die nächsten Alternativen, die wir getestet haben, sind Ocrs, Xberg (formerly Kreuzberg), deepseek-ocr.rs und Docling.
Antworten geprüft am 26. Okt. 2026.