Skip to content

Introduction

EasyOCR’s accuracy. Rust’s speed and footprint.

EasyOCR is an accurate, widely used OCR toolkit — but it’s a PyTorch stack: a Python interpreter, a multi-gigabyte runtime, and a heavy process to keep warm. sceptre reimplements EasyOCR’s pipeline from scratch in Rust — CRAFT text detection followed by gen2 CRNN recognition with CTC decoding, run over ONNX — and drops the Python/torch dependency entirely, while matching EasyOCR’s output on every script it supports.

What you get
Parity accuracy Validated against real EasyOCR output across all eight gen2 scripts — text (word/char-F1) and boxes (IoU).
Faster, no Python runtime Higher throughput than EasyOCR’s warm reader, and no interpreter or torch process to keep warm. See Benchmarks for the measured numbers and the memory methodology.
One binary, no Python A single executable. Models download once from Hugging Face, cache locally, and run offline thereafter.
Three surfaces The same engine as a Rust library, a CLI (sceptre), and an MCP server for agents.
Native or pure-Rust ONNX Runtime (ort) for native speed, or a pure-Rust backend (tract) for WASM/Android, behind one seam.
  • Library — add sceptre as a dependency and call Reader::builder().build() from your own Rust code. See Library guide.
  • CLI — install the sceptre binary and run OCR from the command line or a shell pipeline. See CLI guide.
  • MCP server — run sceptre mcp to expose a readtext tool to any MCP-capable agent. See MCP server guide.

sceptre targets EasyOCR’s current, actively maintained path:

  • Detection: the CRAFT model only.
  • Recognition: all eight gen2 (*_g2) recognizers — English, Latin, Chinese (simplified), Japanese, Korean, Cyrillic, Telugu, Kannada.
  • Decoding: greedy CTC decoding.

Legacy gen1 recognizer models, DBNet detection, and beam-search decoding are out of scope. Model ONNX artifacts are first-party exports built from EasyOCR’s weights and hosted on the xberg-io Hugging Face org (Apache-2.0). See Models & parity and ADR 0002 for the full rationale.