perf(api): remplacer unar/pdftoppm par unrar crate et pdfium-render

CBR: extract_cbr_page extrayait TOUT le CBR sur disque pour lire une
seule page. Reécrit avec le crate unrar : listing en mémoire + extraction
ciblée de la page demandée uniquement. Zéro subprocess, zéro temp dir.

PDF: render_pdf_page utilisait pdftoppm subprocess + temp dir. Reécrit
avec pdfium-render in-process. Zéro subprocess, zéro temp dir.

CBZ: sort naturel (natord) pour l'ordre des pages.

Dockerfile API: retire unar et poppler-utils, ajoute libpdfium.so.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-11 16:52:15 +01:00
parent 6abaa96fba
commit 3b6cc2903d
4 changed files with 99 additions and 95 deletions

4
Cargo.lock generated
View File

@@ -62,6 +62,8 @@ dependencies = [
"futures",
"image",
"lru",
"natord",
"pdfium-render",
"rand 0.8.5",
"reqwest",
"serde",
@@ -75,10 +77,10 @@ dependencies = [
"tower-http",
"tracing",
"tracing-subscriber",
"unrar",
"utoipa",
"utoipa-swagger-ui",
"uuid",
"walkdir",
"webp",
"zip 2.4.2",
]