PackageTrack
Sign in Get early access

qr_code_dart_decoder

A Dart package for decoding QR codes and other barcode formats using the ZXing library

0.3.0 6.8K downloads/mo #3461 most downloaded on pub.dev RafaelBarbosatec/qr_code_dart_scan

What this package is like to depend on

Last release 13 days ago

10 Aug 2026

Release timing varies

gaps range from 2 weeks to 1.1 years

Nearly every release is documented

notes for 10 of 10 stable releases

Nothing withdrawn

no release was ever pulled

1 years old

10 releases · first in 2025

2 releases in the last 12 months

see the full history below

Release timeline

10 releases · Mar 2025 to Aug 2026
2026
Release Pre-release

Releases

latest 10
  1. 0.3.0 10 Aug 2026
    Release notes
    • update camera to 0.9.4+5
    Open source →
    Release notes

    Breaking Changes

    • zxing_lib is no longer part of the public API. The package now owns its models, so consuming apps never need a zxing_lib dependency:
      • decodeFile and decodeCameraImage return ScanResult? instead of zxing_lib's Result?.
      • BarcodeFormat is now this package's own enum, exposing only the formats that are actually supported (aztec, code39, code93, code128, dataMatrix, ean8, ean13, itf, pdf417, qrCode). Unsupported formats are a compile error instead of a runtime exception.
      • export 'package:zxing_lib/zxing.dart' show BarcodeFormat, Result was removed from the barrel.
    • FileDecode.decode, CameraDecode.decode and IsolateCameraDecode.setYuv420Planess return ScanResult?; FileDecodeEvent.formats and IsolateCameraDecode.currentResults use the new types as well.

    Features

    • Added ScanResult with text, format, timestamp, rawBytes and corners.
      • corners is a List<Point<double>> (dart:math), keeping the package pure Dart. Flutter apps can bridge it to Offset with toOffset/toOffsets from package:qr_code_dart_scan.
      • ScanResult keeps identity equality on purpose, so repeated scans of the same barcode still notify.

    Bug Fixes

    • CameraDecode.decode now honours the formats it is given. It accepted the argument but never forwarded it to the reader, so camera decoding was unrestricted and could return a barcode in a format the caller had not asked for.

    Migration

    // Before
    final Result? result = await decoder.decodeFile(bytes);
    result?.barcodeFormat; // zxing_lib BarcodeFormat
    result?.resultPoints;  // List<ResultPoint?>?
    
    // After
    final ScanResult? result = await decoder.decodeFile(bytes);
    result?.format;  // qr_code_dart_decoder BarcodeFormat
    result?.corners; // List<Point<double>>, never null
    
    Open source →
  2. 0.2.0 28 Jul 2026
    Release notes
    • update camera
    • update image.
    Open source →
    Release notes

    Performance Improvements

    • Memory optimization: Implemented TransferableTypedData for zero-copy data transfer between isolates (~4MB saved per frame).
    • YUV processing optimization: Use only Y plane for luminance extraction, eliminating unnecessary U/V plane allocation (~1.5MB saved per frame).
    • Memory leak fix: Added bounded buffer (limit of 10) to results list to prevent unbounded growth.
    • Rotation optimization: Implemented block-wise image rotation (32x32 blocks) for better cache locality (30-40% faster).
    • Blur detection: Added motion and out-of-focus frame detection to skip unprocessable frames (20-30% CPU savings).
    • Decode optimization: Changed default to tryHarder: true on first attempt for better success rate.
    • Crop background disabled: Disabled expensive crop background fallback by default for better performance.

    Features

    • Added BlurDetector class with isSharp() and isSharpFast() methods for blur detection.
    • Added TransferableYuv420Planes class for efficient isolate communication.
    • Added CameraDecode.enableBlurDetection flag to toggle blur detection (default: false).

    Breaking Changes

    • Crop background processing is now disabled by default in CameraDecode (can be re-enabled by uncommenting).
    Open source →
  3. 0.1.2 23 Jun 2025
    Release notes
    • Move crop background to FileDecode.
    • Move crop background to CameraDecode.
    Open source →
  4. 0.1.1 20 Jun 2025
    Release notes
    • rename scanQRCodeInverted to scanInvertedQRCode
    • improvements aspectRatio.
    Open source →
    Release notes
    • Adds rotation to decode event.
    • Remove invert from decode event.
    • Adds CroppingStrategy to decode event.
    • Adds CropBackgroundYuvProcessor.
    Open source →
  5. 0.1.0 20 Jun 2025
    Release notes
    • add setScanEnabled in controller.
    • add other formats: QR_CODE,AZTEC,DATA_MATRIX,PDF_417,CODE_39,CODE_93,CODE_128,EAN_8,EAN_13.
    Open source →
  6. 0.0.5 17 Mar 2025
    Release notes
    • Adds cropRect.
    Open source →
  7. 0.0.4 17 Mar 2025
    Release notes
    • Adds tryHarder=true in decode.
    • FileDecode improvements
    Open source →
  8. 0.0.3 14 Mar 2025
    Release notes
    • Adds rotate
    Open source →
  9. 0.0.2 13 Mar 2025
    Release notes
    • Improvements performance
    Open source →
    Release notes
    • Update MultiFormatReader.
    Open source →
  10. 0.0.1 13 Mar 2025
    Release notes
    • First version
    Open source →
    Release notes
    • Initial version
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive