Skip to content

DocVortex 0.5.0

Choose a tag to compare

@myhloli myhloli released this 25 Sep 19:08

Changes

  • Add optional Rust acceleration for native PDF processing, including character geometry, superscript/subscript classification, duplicate text detection, ordered statistics and table recovery. The public Python API remains unchanged, with Python reference implementations retained.
  • Batch character extraction through the active PDFium instance, reuse geometry and table indices, and bound intermediate character/candidate materialization. Encode visual crops in rendering workers and release closed PDF wrapper cycles between tasks.
  • Add explicit DOCVORTEX_COMPUTE_BACKEND=auto|python|rust selection and DOCVORTEX_BUILD_NATIVE=auto|0|1 build control. Missing or incompatible extensions fall back in auto mode; forced Rust mode reports an error.
  • Add CPython ABI3 wheels for Linux x86_64/aarch64, Windows x86_64 and macOS arm64/x86_64, alongside a pure Python wheel and source distribution. Extend CI with Python/Rust parity, installed-wheel checks and real-PDF comparisons.
  • Convert WMF/EMF images embedded in DOCX tables into exportable images, including the full-document-context fallback path.
  • Document repository ownership and development workflows, and split PyO3 bindings into focused modules without changing the private extension interface.

Compatibility

  • Native wheels target GIL-enabled CPython 3.10–3.14; Linux wheels require glibc 2.28 or newer. Pure Python builds remain available.
  • On Intel macOS, the existing Magika/ONNX Runtime dependency stack limits full application installation on Python 3.14. The native binary is checked separately for 3.14 ABI compatibility; full parsing is validated on Python 3.10 and 3.13.
  • Source builds compile Rust when Cargo is available. Set DOCVORTEX_BUILD_NATIVE=0 to build without the extension. Restart existing processes after upgrading or rebuilding an editable extension.

Full Changelog: v0.4.25...v0.5.0