# What changed in rapidocr

> 20 changes in rapidocr 3 from its official release notes, upgrade guides and advisories: 2 breaking, 1 security, 8 new APIs and options. Each one cited. Sources checked 2026-10-24. HTML: https://unstale.sh/pypi/rapidocr/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## rapidocr 3

### Breaking changes

- OpenCV is headless by default, with GUI support available optionally. (3.10.0) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.10.0)
- PyTorch 1.13+ is required for secure model loading. (3.10.0) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.10.0)

### Security

- Torch weights load with weights_only=True to prevent code execution. (3.10.0) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.10.0)

### New APIs and options

- Images can be decoded from memory addresses. (3.10.0) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.10.0)
- Adds multilingual model routing and licensing metadata. (3.10.0) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.10.0)
- Image loading can use raw memory buffers with format and stride metadata. (3.10.0) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.10.0)
- Adds the use_apply_vertical_padding parameter for controlling vertical padding. (3.9.2) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.9.2)
- Adds the use_preprocess_img parameter for controlling image preprocessing. (3.9.2) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.9.2)
- Adds MNN backend support for PP-OCrv6. (3.9.1) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.9.1)
- Adds PaddlePaddle backend support for PP-OCRv6, allowing developers to use this inference backend. (3.9.1) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.9.1)
- Adds PyTorch as an inference engine for PP-OCRv6. (3.9.1) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.9.1)

### Performance

- OCR models are initialized lazily. (3.10.0) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.10.0)

### Behavior and default changes

- Lazy model loading is locked so first use constructs the model once. (3.10.0) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.10.0)
- Routes are centralized in YAML, and supported languages are exposed. (3.10.0) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.10.0)

### Fixes and other changes

- The function now uses the device it is given. (3.10.0) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.10.0)
- The detector now honors limit_side_len when limit_type is max. (3.10.0) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.10.0)
- MNN output extraction uses getNumpyData() instead of getData(). (3.10.0) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.10.0)
- The torch engine now honors model_root_dir for recognition dictionary and string paths. (3.10.0) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.10.0)
- Arabic OCR initialization validates python-bidi before proceeding. (3.10.0) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.10.0)
- Adjusts the PP-OCRv6 Paddle model key names in the YAML config. (3.9.1) — [release notes](https://github.com/RapidAI/RapidOCR/releases/tag/v3.9.1)
