O que é ocr-rs (formerly rust-paddle-ocr)?
O ocr-rs é um crate Rust para rodar os modelos de detecção e reconhecimento do PaddleOCR fora do Python. Ele se chamava rust-paddle-ocr até 9 de setembro de 2026, quando o repositório foi renomeado; a URL antiga redireciona. Os modelos rodam no MNN, o runtime de inferência leve da Alibaba, que o crate vincula como código nativo, então é Rust por fora, e não Rust puro do começo ao fim.
Ele suporta PP-OCRv4, PP-OCRv5 e os três níveis do PP-OCRv6 (tiny, small, medium). Os modelos v6 small e medium cobrem 50 idiomas, incluindo chinês simplificado e tradicional, japonês e 46 idiomas de escrita latina; coreano, cirílico, árabe, devanágari, tailandês, grego, tâmil e télugo usam os modelos v5 específicos de cada escrita. Os extras incluem um modo robusto para texto misto horizontal e vertical e caixas delimitadoras por caractere para seleção em visualizadores de imagem. Os backends de GPU cobrem CUDA, Vulkan, Metal e OpenCL.
O crate está na versão 2.4.1 (5 de agosto de 2026), com cerca de 85.000 downloads no crates.io; o repositório tem 339 estrelas sob Apache-2.0. Um único desenvolvedor escreveu 100 dos seus 103 commits. Uma CLI e uma API C ficam em repositórios separados.
ocr-rs (formerly rust-paddle-ocr) vale a pena?
O ocr-rs se justifica pela cobertura de idiomas. Onde o Ocrs lê apenas escrita latina, este crate traz os modelos do PaddleOCR, que leem chinês, japonês e cerca de uma dúzia de outras escritas, para uma aplicação Rust com uma API de três linhas: carregue um detector, um reconhecedor e uma lista de caracteres, depois chame recognize.
O cuidado de engenharia é melhor do que suas 339 estrelas sugerem. O crate diferencia os níveis do PP-OCRv6 em vez de entregar um único modelo, se recusa a cair silenciosamente para a CPU quando falta um backend de GPU solicitado e roda uma verificação de desempenho no CI que falha quando o tempo mediano do pipeline atual fica mais de 15% acima do pipeline legado no mesmo runner. O modo opcional de texto rotacionado repete a detecção em cópias giradas em 90 e 270 graus, o que importa para o texto vertical em japonês e chinês.
As contrapartidas estão no empacotamento e nas pessoas. O MNN é C++, então a compilação cruzada exige binários pré-compilados do MNN ou uma compilação a partir do código-fonte, e builds Windows GNU precisam de um toolchain MinGW. Converter modelos Paddle para o formato MNN passa por um script Python, então uma etapa em Python volta no momento do build, mesmo que a produção nunca a veja. O serviço HTTP que o README menciona não é público, e quase todos os commits vêm de um único mantenedor.
Comparado a um modelo de visão e linguagem como o PaddleOCR-VL 1.6, este é um leitor de linhas: devolve caixas de texto com pontuações de confiança, não tabelas em Markdown nem ordem de leitura. Para recibos, placas, capturas de tela e formulários em escritas asiáticas em hardware modesto, essa costuma ser a troca certa; para documentos inteiros, não é.
Onde ele se destaca
Um desenvolvedor de um app leitor de mangá japonês e capturas de tela
Permitir que os usuários selecionem e copiem texto de imagens, incluindo linhas verticais
Carregue o PP-OCRv6 small, ative RotatedTextMode::Robust e use a API de alinhamento de caracteres para mapear cada glifo à sua posição para seleção. Gratuito; o modo robusto adiciona passadas extras de detecção em cópias rotacionadas, então custa latência por imagem.
Um engenheiro em uma empresa de e-commerce internacional que processa envios de vendedores
Ler texto em chinês e inglês em fotos de produtos e notas fiscais em volume
Rode o crate dentro de um serviço Rust existente em workers de CPU, ou o backend CUDA em um nó com GPU para mais vazão. Sem taxas por página; o trabalho é compilar o MNN para o alvo e fixar um nível de modelo.
Antes de decidir
- Configuração
- cargo add ocr-rs, coloque os arquivos de modelo MNN em models/ (converta modelos de inferência Paddle com o script Python incluído) e depois cargo build --release; binários pré-compilados do MNN são escolhidos automaticamente quando disponíveis.
- Integrações
- Crate Rust; API C em paddle-ocr-capi e uma CLI em newbee-ocr-cli (repositórios separados); GPU pelas features cuda, vulkan, metal e opencl.
- Dados e privacidade
- Roda totalmente local, sem chamadas de rede na inferência. Código Apache-2.0; os modelos PaddleOCR são Apache-2.0.
- Custo em escala
- Modelos de classe mobile na CPU mantêm o processamento barato; os backends de GPU são opcionais. Sem edição paga nem serviço hospedado.
- Limites
- Cerca de 6 issues abertas; partidas a frio na GPU exigem ajuste ou um cache de kernels; o japonês não é suportado pelo nível tiny do PP-OCRv6; CUDA compilado a partir do código-fonte no Windows exige MSVC.
O que é bom
- PP-OCRv4, v5 e os três níveis do v6
- Cobre escritas CJK, árabe, cirílica, índicas e tailandesa
- Backends CUDA, Vulkan, Metal e OpenCL com erros explícitos
- Modo de texto vertical e caixas por caractere
O que não é
- Vincula o MNN em C++; não é Rust puro
- A conversão de modelos exige um script Python
- Na prática, um único mantenedor
- Só texto de linha e caixas, sem estrutura de documento
Ideal para
Desenvolvedores Rust que precisam de OCR para escritas não latinas, especialmente chinês e japonês, dentro de uma aplicação nativa.
Alternativas ao ocr-rs (formerly rust-paddle-ocr)
ocr-rs (formerly rust-paddle-ocr): perguntas frequentes
- ocr-rs (formerly rust-paddle-ocr) vale a pena?
- O ocr-rs é a forma prática de levar a cobertura de chinês e japonês do PaddleOCR para um binário Rust, desde que um único mantenedor e um runtime em C++ não preocupem você. Damos nota 3.7 de 5.
- Quanto custa ocr-rs (formerly rust-paddle-ocr)?
- Gratuito sob Apache-2.0; os modelos PaddleOCR são Apache-2.0, da Baidu.
- Quais são as desvantagens de ocr-rs (formerly rust-paddle-ocr)?
- Vincula o MNN em C++; não é Rust puro; a conversão de modelos exige um script Python; na prática, um único mantenedor; só texto de linha e caixas, sem estrutura de documento.
- Para quem ocr-rs (formerly rust-paddle-ocr) é indicado?
- Desenvolvedores Rust que precisam de OCR para escritas não latinas, especialmente chinês e japonês, dentro de uma aplicação nativa.
- Quanto custa ocr-rs (formerly rust-paddle-ocr) para uma equipe ou em produção?
- Modelos de classe mobile na CPU mantêm o processamento barato; os backends de GPU são opcionais. Sem edição paga nem serviço hospedado.
- ocr-rs (formerly rust-paddle-ocr) é seguro para dados da empresa?
- Roda totalmente local, sem chamadas de rede na inferência. Código Apache-2.0; os modelos PaddleOCR são Apache-2.0.
- Quais são as melhores alternativas ao ocr-rs (formerly rust-paddle-ocr)?
- As alternativas mais próximas que analisamos são Ocrs, Xberg (formerly Kreuzberg), deepseek-ocr.rs e Docling.
Respostas verificadas em 26 de out. de 2026.
