What's new
Nothing you can use yet, and I would rather say that plainly than dress it up.
This release adds an optional PaddleOCR engine to the processing service — a second way to make a scanned PDF searchable, alongside the existing OCRmyPDF and Tesseract paths. It is not compiled into these builds. The desktop app and the Docker images below will tell you the feature is missing if you try to select it, and that is deliberate.
Two reasons. It has never once run against a real OCR model — everything proven about it so far is the machinery around the engine, not the engine reading text. And switching it on would pull two more numeric libraries into a backend binary that gets compiled three separate times per release, which works directly against the build times the last two releases were spent reducing. Neither cost is worth paying for something unproven.
So this is groundwork. The engine is written, reviewed, and tested; it needs a real model run before it earns a place in an installer.
Upgrading
Nothing to do. No configuration you already set changes meaning, and no API request or response shape changed.
One visible difference for desktop users: your settings.yml gains an inert ocr: block on first start after upgrading, with engine: auto — which is exactly the OCR behaviour you have now. Your existing values are carried across unchanged, as with any settings upgrade. You can ignore the new block entirely.
If you run OCR today through OCRmyPDF or Tesseract, nothing about it changed.
Container images
Published to GitHub Container Registry by this release run:
docker pull ghcr.io/hairbui76/rustlingpdf:v0.1.9
docker pull ghcr.io/hairbui76/rustlingpdf-ai-engine:v0.1.9 # optional AI sidecarBoth are also tagged latest. Run instructions: rust/RUNNING_WITH_RUST.md, section "Docker".
Desktop apps
Installers built and signed by this release run, attached below: Linux (.deb; AppImage is paused — coming soon), Windows (-setup.exe — the smaller download — or .msi for msiexec/GPO deployment; pick one and stay on it, updates keep whichever you installed). Each signed bundle has a .sig file next to it so you can verify your download against the project's minisign public key.
At startup the desktop app asks this releases page once whether a newer version exists (Settings -> General turns that off, and has a button for asking on demand); nothing else is ever sent anywhere. Updates install only when you ask, and every download is verified against the signing key first.
Known limitations
The PaddleOCR engine ships in no artifact here. Running it means building the backend yourself with its feature enabled, and supplying your own ONNX Runtime, models, dictionary, and a font for the text layer — roughly 160 MB of files this project does not and will not bundle. Its remaining gaps are written down in docs/plans/active/paddle-ocr-backend.md: no model-backed run, no proof it handles Chinese, Japanese or Korean text, and no end-to-end test of page ordering.
No macOS build — that platform is still paused. No AppImage either: v0.1.0 shipped the last one, so an existing AppImage install cannot see this release through its update check and has to be replaced by hand.
Full Changelog: v0.1.8...v0.1.9