← All reportsPublic report

tesseract-ocr/tesseract

Tesseract Open Source OCR Engine (main repository)

76k stars C++ View on GitHubprofiled 11d ago
Try GitZoid
51PRs this week
10Contributors
0Deps scanned
0Issues found
01 · Repo overview

How tesseract is put together

Tesseract is an open-source OCR engine written primarily in C++, shipped as a library (libtesseract) plus a command-line program (src/tesseract.cpp). It exposes both a C++ API (include/tesseract/baseapi.h) and a C API (include/tesseract/capi.h); input images are handled via the Leptonica library and recognition is performed by either an LSTM-based neural engine or the legacy engine, with results rendered as text, hOCR, PDF, TSV, ALTO or PAGE via renderer classes in src/api. The build supports both Autotools (configure.ac/Makefile.am) and CMake, with runtime SIMD dispatch (SSE/AVX/AVX2/AVX512/FMA/NEON/RVV) selected at startup in src/arch/simddetect.cpp.

Languages

C++CJavaPythonNSIS

Frameworks

Leptonica (image I/O dependency)Google Test/Mock (unittest harness)Doxygen (docs generation)

Infrastructure

GitHub Actions CI (CodeQL badge)Coverity ScanOSS-Fuzz fuzzingAppVeyor CI (appveyor.yml)Snap packaging (snap/snapcraft.yaml)NSIS Windows installer (nsis/)

Major components

API layer (src/api)

Implements the public BaseAPI (baseapi.cpp), the C wrapper (capi.cpp), and output renderers for text, hOCR, ALTO, PDF, page and box formats.

SIMD/arch abstraction (src/arch)

Provides runtime CPU-feature detection and optimized dot-product and int-simd-matrix kernels for SSE, AVX2, AVX512, FMA, NEON and RISC-V vector extensions.

Main control/pipeline (src/ccmain)

Orchestrates the OCR pipeline: page segmentation, line recognition, adaptation, rejection, paragraph detection, output, and the TesseractClass state holder.

Public headers (include/tesseract)

Defines the stable C++ and C API surface: baseapi.h, capi.h, renderer.h, iterators, OS detection and public types.

CLI entry point (src/tesseract.cpp, src/svpaint.cpp)

Parses command-line arguments and drives libtesseract for batch OCR; svpaint is a scrollview-based painting utility.

Unit test suite (unittest/)

Extensive gtest/gmock-based tests covering baseapi, LSTM training/recognition, unicharset, validators, renderers and threading.

Build system (CMakeLists.txt, cmake/, configure.ac, Makefile.am)

Dual Autotools/CMake build with source lists, compiler checks, optimization flags and pkg-config template generation.

Packaging & data (nsis/, snap/, java/, tessdata/)

Windows NSIS installer scripts, Snap package definition, Java-related makefiles, and bundled English user-words/user-patterns plus embedded pdf.ttf font.

Over the past five weeks, the Tesseract OCR project focused heavily on code quality and reliability: a large sweep of automated bug-finder (Coverity) fixes in early August cleaned up memory leaks, uninitialized values, and overflow risks across the codebase. Alongside that, the team improved Windows build support for training tools, modernized the codebase to C++20, and tidied up documentation and output formats. The most recent weeks were quieter, with small polish fixes to the viewer menus, security findings from GitHub's AI review, and a correction to how confidence scores are written in ALTO text-output files.

Week by week

2026-08-24A single fix corrected malformed confidence scores in ALTO-format output.latest1 change

Fix

Fix malformed ALTO WC values

Fixed an issue where single-digit and perfect (100) confidence scores were written incorrectly into ALTO XML output files (#4616).

2026-08-17Small cleanups addressed menu efficiency, AI-flagged security issues, and updated build tooling.3 changes

Refactor

Faster empty-string checks in ScrollView menus

Replaced an inefficient way of testing whether strings are empty in the interactive viewer's menu code (#4612).

Fix

Address GitHub AI security findings

Resolved issues flagged by GitHub's 'Security and quality' automated review (#4613).

Chore

Upgrade checkout action

Updated the GitHub Actions checkout step used by CI pipelines from version 4 to version 7 (#4607).

2026-08-10A busy week of static-analysis fixes plus performance, testing, and documentation improvements.6 changes

Refactor

Speed up paragraph restart scanning

Removed a slow quadratic-time scan when restarting paragraphs, making layout analysis faster on large documents (#4599).

Fix

Fix Coverity warnings

Resolved several automated analyzer warnings about uninitialized fields, unused values, resource leaks, and copies that could be moves.

Refactor

Add move constructors and assignment operators

Added move semantics to key classes so objects can be transferred efficiently instead of copied.

Chore

Build unit tests without training tools

Unit tests can now be compiled even when the optional training tools are not built, simplifying test setups (#4596).

Chore

New pull-request commit checker workflow

Added a GitHub workflow that automatically checks individual commits within a pull request (#4604).

Fix

Export GetDetector() from Windows DLL

Made the SIMD detector function visible outside the tesseract DLL so Windows builds link correctly (#4602).

2026-08-03The biggest week of the period: a comprehensive cleanup of Coverity-reported bugs across the codebase.3 changes

Fix

Sweep of Coverity defect fixes

Fixed roughly twenty automated-analyzer findings including use-after-free, double free, resource leaks, out-of-bounds access, integer overflows, division by zero, and uninitialized variables.

Fix

Fix recursive static initialization in SIMDDetect::GetDetector()

Reworked an environment-variable override to file scope to avoid a subtle crash risk during program startup.

Chore

Add missing standard library includes

Added missing <string> and <cstdlib> includes so the code compiles cleanly on all platforms.

2026-07-27Windows training tools got working again and the project moved up to C++20.4 changes

Fix

Fix training tools build on Windows VS2022

Corrected compilation errors so the training utilities build on Windows with Visual Studio 2022 (#4590).

Chore

Enable training tools in cmake-win64 CI

Turned on building the training tools in the 64-bit Windows continuous-integration job so regressions get caught earlier.

Refactor

Update to C++20

Modernized the codebase to use the C++20 language standard.

Fix

Fix MSVC warnings and build breakage

Silenced compiler warnings from Microsoft's compiler and repaired builds broken along the way.

03 · Security check

Dependencies and code review

0 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 0 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required