tesseract-ocr/tesseract
Tesseract Open Source OCR Engine (main repository)
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
Frameworks
Infrastructure
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.
A single fix corrected malformed confidence scores in ALTO-format output.
5 weeksWeek of 2026-08-24
Week of 2026-08-24latest
A single fix corrected malformed confidence scores in ALTO-format output.
Week of 2026-08-17
Small cleanups addressed menu efficiency, AI-flagged security issues, and updated build tooling.
Week of 2026-08-10
A busy week of static-analysis fixes plus performance, testing, and documentation improvements.
Week of 2026-08-03
The biggest week of the period: a comprehensive cleanup of Coverity-reported bugs across the codebase.
Week of 2026-07-27
Windows training tools got working again and the project moved up to C++20.
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.
Dependencies and code review
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