qr
A QR code generation library for Dart. Supports QR code version 1 through 40, error correction and redundancy.
4.0.0
2.9M downloads/mo
#216 most downloaded on pub.dev
kevmoo/qr.dart
What this package is like to depend on
Last release 3 months ago
16 May 2026
Release timing varies
gaps range from 2 weeks to 2.3 years
Nearly every release is documented
notes for 15 of 15 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
17 releases · first in 2018
1 release in the last 12 months
see the full history below
Release timeline
17 releases · Mar 2018 to May 2026
2019
2020
2021
2022
2023
2024
2025
2026
Releases
latest 17-
4.0.016 May 2026Release notes
Open source →- Breaking Change: Removed
QrBitBufferfrom public exports to tighten the API surface. - Breaking Change:
QrErrorCorrectLevelis now an enum (low,medium,quartile,high) instead of a class with integer constants (L,M,Q,H). - Breaking Change:
QrCodeandQrImageconstructors and properties now use theQrErrorCorrectLevelenum instead of integers. - Breaking Change: Removed
dataCachegetter fromQrCode. - Breaking Change:
QrCodeis now immutable. RemovedaddData,addByteData,addNumeric,addAlphaNumeric, andaddECIfromQrCode. - Breaking Change: Consolidated
QrCodeconstructors into a single public factory constructor takingQrPayload,errorCorrectLevel, and an optionalminTypeNumber. RemovedQrCode.fromData,QrCode.fromUint8List, andQrCode.fromPayload. - Breaking Change: Replaced
Uint8ListandByteDatain public API signatures withTypedData. - Breaking Change: Marked all public classes (
QrCode,QrImage,QrPayload,QrValidationResult,InputTooLongException) asfinal classto enforce structural immutability and prevent external subtyping. - Added
QrPayloadclass as a standalone accumulator for multi-part data and encoding modes (Numeric, Alphanumeric, Byte, ECI). Includes constructorsfromString,fromTypedData, and methodsaddString,addTypedData,addNumeric,addAlphaNumeric,addECI. - Added Extended Channel Interpretation (ECI) support via
QrPayload.addECIand theQrEciValueextension type. - Added
QrValidationResult.fromPayloadfactory constructor to validate QR code payloads and predict valid configurations. - Added
QrValidationResultclass returned by validation constructor. QrPayload.fromStringandQrPayload.addStringnow intelligently pick the right mode.- Throws
InputTooLongExceptionfor data that exceeds QR code version 40 capacity, preventing the generation of invalid QR codes. - Performance improvements for QR code generation.
QrImagegeneration is ~50% faster.LargeQrCodegeneration is ~40% faster.
- Require
sdk: ^3.11.0.
Release notes
Open source →- Breaking Change: Removed
QrBitBufferfrom public exports to tighten the API surface. - Breaking Change:
QrErrorCorrectLevelis now an enum (low,medium,quartile,high) instead of a class with integer constants (L,M,Q,H). - Breaking Change:
QrCodeandQrImageconstructors and properties now use theQrErrorCorrectLevelenum instead of integers. - Breaking Change: Removed
dataCachegetter fromQrCode. - Breaking Change:
QrCodeis now immutable. RemovedaddData,addByteData,addNumeric,addAlphaNumeric, andaddECIfromQrCode. - Breaking Change: Consolidated
QrCodeconstructors into a single public factory constructor takingQrPayload,errorCorrectLevel, and an optionalminTypeNumber. RemovedQrCode.fromData,QrCode.fromUint8List, andQrCode.fromPayload. - Breaking Change: Replaced
Uint8ListandByteDatain public API signatures withTypedData. - Breaking Change: Marked all public classes (
QrCode,QrImage,QrPayload,QrValidationResult,InputTooLongException) asfinal classto enforce structural immutability and prevent external subtyping. - Added
QrPayloadclass as a standalone accumulator for multi-part data and encoding modes (Numeric, Alphanumeric, Byte, ECI). Includes constructorsfromString,fromTypedData, and methodsaddString,addTypedData,addNumeric,addAlphaNumeric,addECI. - Added Extended Channel Interpretation (ECI) support via
QrPayload.addECIand theQrEciValueextension type. - Added
QrValidationResult.fromPayloadfactory constructor to validate QR code payloads and predict valid configurations. - Added
QrValidationResultclass returned by validation constructor. QrPayload.fromStringandQrPayload.addStringnow intelligently pick the right mode.- Throws
InputTooLongExceptionfor data that exceeds QR code version 40 capacity, preventing the generation of invalid QR codes. - Performance improvements for QR code generation.
QrImagegeneration is ~50% faster.LargeQrCodegeneration is ~40% faster.
- Require
sdk: ^3.11.0.
- Breaking Change: Removed
-
3.0.216 Jul 2024 -
3.0.112 Apr 2022 -
3.0.013 Nov 2021Release notes
Open source →QrImageadded to handle image bits.QrCode.make()removedQrCode.isDark()moved toQrImage- Added alpha numeric mode support via
addAlphaNumeric
-
2.1.023 Jun 2021 -
2.0.023 Feb 2021Release notes
Open source →- Expose Mask Pattern as a parameter of QrCode.make()
- Migrated to null safety.
- Require Dart SDK
>=2.12.0 <3.0.0.
-
2.0.0-nullsafety.129 Nov 2020 pre-releaseNothing published for this version
-
2.0.0-nullsafety12 Nov 2020 pre-releaseNothing published for this version
-
1.3.016 Jun 2020 -
1.2.009 Jul 2019Release notes
Open source →- Expose
InputTooLongExceptionexception so that applications and libraries can check for data length errors.
- Expose
-
1.1.116 May 2019Release notes
Open source →- Require Dart SDK
>=2.1.0 <3.0.0. - Fix a bug that fromData doesn't add supplied data.
- Require Dart SDK
-
1.1.003 May 2019Release notes
Open source →- Add
fromDataQrCode factory that allows QrCode initiation without providingtypeNumber.
- Add
-
1.0.108 Aug 2018 -
1.0.011 Apr 2018Release notes
Open source →- Require at least Dart SDK
2.0.0-dev.17. - Fixed a subtle bug with number handling.
- Require at least Dart SDK
-
0.1.003 Mar 2018 -
0.1.0+103 Mar 2018 -
0.1.0+204 Mar 2018Release notes
Open source →- Update README to include basic documentation
- Update pubspec.yaml description