Skip to content

Tapirscan 1.2.2

Choose a tag to compare

@kleinicke kleinicke released this 25 Sep 21:34
· 257 commits to main since this release
  • Public low now uses the original Turbo policy across all bindings; higher
    effort modes remain available. Low prioritizes speed and can miss difficult
    symbols; Medium remains the default API mode. The previous Low is
    TS-Low Classic in the demo. Experimental Turbo tiers remain demo-only.

  • Demo cards pause without disappearing; More scanners controls visibility.
    Basic ZXing and ZXing-JS readers are separate optional comparisons.

  • Speed up Medium, High and Very High recovery crops with pixel-identical integer interpolation and cached rows; retain existing APIs and scan behavior.

  • Recover fuller barcode display outlines with bounded profile agreement when strict bar tracing fails, including high-resolution photos.

  • Measure high-resolution linear barcode extents with adaptive cross-section spacing and outer-edge priority under the existing sample budget.

  • Measure full visible linear-bar extents and reconcile competing interpretations through connected source-bar footprints.

  • Reconcile crossing linear reads through distributed source-bar ownership while preserving earlier duplicate proofs.

  • Suppress weak ITF interpretations when supported retail reads demonstrably occupy the same bars.

  • Follow changing bar widths when consolidating folded linear observations.

  • Reuse well-resolved EAN8/UPC-E coverage before enlarged detail rescans, while
    retaining recovery for small or weakly supported symbols.

  • Recover additional strongly sheared retail labels with bounded sparse envelope fits.

  • Consolidate more warped linear observations using continuous ink and paper evidence,
    while preserving separate equal-value labels and existing work limits.

  • Specialize exact RGB/RGBA luminance conversion and borrow packed grayscale inputs
    for additional format readers.

  • Preserve unchanged generated package and adapter inputs during refresh; serialize
    supported package builds and provide experimental WASM assets outside release identities.

  • Clarify candidate scanning, mode budgets and frame reconciliation; reuse retail
    conversion storage and remove fixed sampling-list heap allocations.

  • Support Chromium comparisons and retained public outputs for labeled experiments.

  • Make release WASM identities independent of checkout paths.

  • Maintain production algorithms directly in core/src with explicit effort-mode
    features; preserve original recipes and sources under historical/.

  • Separate profile sampling, decoding, observation association, retry planning and
    physical identity/conflict resolution into concrete stages.

  • Assemble native results on typed data, including supplements, ordering and unread
    regions. JSON serialization is limited to outputs and optional diagnostics.

Packages: npm install tapirscan@1.2.2, pip install tapirscan==1.2.2, and Rust tapirscan = "1.2.2".

Python 3.10+ wheels: macOS 11+ (Apple Silicon and Intel), Linux manylinux_2_28 (x86_64 and ARM64), and Windows x64. Wheel-only Python distribution.

EAN13, UPCA, EAN8 and UPCE remain supported; other formats remain experimental. Medium and ignored supplements remain the API defaults. Native ABI 4 is unchanged.

Try the demo · Low and Low Classic