arboOCR is a fast, self-contained OCR engine (PP-OCRv6 ONNX weights via
ONNXRuntime, CPU/GPU/TensorRT) with a single prebuilt binary
(arboocr_demo) that every wrapper below drives via subprocess — no C++
build required to use any of them.
| 🧑💻Language | 🏗️Project | ⭐️Stars | 📝Description |
|---|---|---|---|
| C++ | 🔥ArboOCR | The simplest OCR library for C++, with support for TensorRT, Nvidia GPU and CPU. |
| 🧑💻Language | 🏗️Project | ⭐️Stars | 📝Description |
|---|---|---|---|
| PHP | ArboOcrPhp | Simplest PHP OCR, with sub process cpp. | |
| Go | arbo-ocr-go | Simplest Go OCR, with sub process cpp. | |
| Rust | arbo-ocr-rust | Simplest Rust OCR, with sub process cpp. | |
| Python | arbo-ocr-python | Python wrapper for arboOCR — runs the prebuilt arboocr_demo binary via subprocess, no C++ build required. |
|
| JS | arbo-ocr-js | Node.js and Bun wrapper for arboOCR — zero runtime dependencies, no native module, no node-gyp. |
Every wrapper spawns the same arboocr_demo release binary per call and
parses its --json output — so accuracy is identical across all five;
what differs is each language's own process-spawn/interpreter overhead.
Benchmarked head-to-head against each other and against RapidOCR /
RapidOcrOnnx on a 40-image SROIE sample; Go and Rust add the least
overhead (near-zero on top of raw process-spawn), PHP and Python pay
their interpreter's own startup cost on top.