PackageTrack
Sign in Get early access

equatable

A Dart package that helps to implement value based equality without needing to explicitly override == and hashCode.

2.1.0 1000K downloads/mo #12 most downloaded on pub.dev felangel/equatable

What this package is like to depend on

Last release 1 months ago

05 Jul 2026

Ships unpredictably

gaps range from 3 weeks to 2.2 years

Nearly every release is documented

notes for 47 of 47 stable releases

Nothing withdrawn

no release was ever pulled

8 years old

55 releases · first in 2019

3 releases in the last 12 months

see the full history below

Release timeline

55 releases · Jan 2019 to Jul 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 55
  1. 3.0.0-dev.1 16 Oct 2024 pre-release
    Release notes
    • feat: use covariant in operator== override for improved type safety
    • chore: add macros to topics in pubspec.yaml
    Open source →
  2. 3.0.0-dev.0 16 Oct 2024 pre-release
    Release notes
    • BREAKING feat!: rewrite using macros

      Before

      class Person extends Equatable {
        const Person({required this.name});
        final String name;
      
        @override
        List<Object> get props => [name];
      }

      After

      @Equatable()
      class Person {
        const Person({required this.name});
        final String name;
      }
    Open source →
  3. 2.1.0 05 Jul 2026
    Release notes
    • feat: deprecate EquatableMixin (#214)
      class Foo with EquatableMixin {...} // OLD
      class Foo with Equatable {...} // NEW
    • refactor: update analysis options
    • deps: upgrade to Dart >=3.0.0
    • chore(example): upgrade to Dart >=3.12.0
    Open source →
    Release notes
    • feat: deprecate EquatableMixin (#214)
      class Foo with EquatableMixin {...} // OLD
      class Foo with Equatable {...} // NEW
      
    • refactor: update analysis options
    • deps: upgrade to Dart >=3.0.0
    • chore(example): upgrade to Dart >=3.12.0
    Open source →
  4. 2.1.0-dev.0 24 May 2026 pre-release

    Nothing published for this version

  5. 2.0.8 04 Jan 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v2.0.7...v2.0.8

    Open source →
    Release notes
    • chore: bump license year (#208)
    • fix: mapEquals when comparing maps with different keys and null values (#207)
    Open source →
  6. 2.0.7 21 Nov 2024
    Release notes

    What's Changed

    Full Changelog: v2.0.6...v2.0.7

    Open source →
    Release notes
    • revert: equals in equatable_utils (#190)
    • fix: explicitly handle num equality comparisons (#189)
    Open source →
  7. 2.0.6 21 Nov 2024
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v2.0.5...v2.0.6

    Open source →
    Release notes
    • perf: improve equality comparison performance (#173)
    • docs: improve snippet in README (#184)
    • chore: upgrade example to Dart >=3.5.0
    • chore: add funding and topics to pubspec.yaml (#176)
    • chore: add performance benchmarks
    • chore: fix typo in inline API docs (#170)
    • refactor: simplify toString logic (#140)
    • docs: add nullable props example to README
    • refactor: update analysis_options.yaml (#169)
    • fix: add @immutable to EquatableMixin (#154)
    Open source →
  8. 2.0.5 19 Aug 2022
    Release notes
    • fix: resolves T not a subtype of type 'Comparable<dynamic>' when computing hashCode
    Open source →
    Release notes
    • fix: resolves T not a subtype of type 'Comparable<dynamic>' when computing hashCode
    Open source →
  9. 2.0.4 19 Aug 2022
    Release notes
    • fix: use SplayTreeSet to resolve inconsistent hashCode for properties of type Set (#142)
    Open source →
    Release notes
    • fix: use SplayTreeSet to resolve inconsistent hashCode for properties of type Set (#142)
    Open source →
  10. 2.0.3 14 Jun 2021
    Release notes
    • fix: revert EquatableMixin == to use Object (#122)
    Open source →
    Release notes
    • fix: revert EquatableMixin == to use Object (#122)
    Open source →
  11. 2.0.2 20 May 2021
    Release notes
    • fix: Map prop with non-comparable key
    Open source →
    Release notes
    • fix: Map prop with non-comparable key
    Open source →
  12. 2.0.1 19 May 2021
    Release notes
    • fix: hashCode should be the same for equal objects (Map fix)
    Open source →
  13. 2.0.0 02 Mar 2021
    Release notes
    • BREAKING: opt into null safety
      • feat!: upgrade Dart SDK constraints to >=2.12.0-0 <3.0.0
    • BREAKING: stringify prints "null" for null properties instead of ""
    • feat: EquatableConfig.stringify defaults to true in debug mode.
    • fix: support legacy equality overrides with EquatableMixin
    • fix: iterable equality comparisons (#101)
    • fix: stringify instance with long properties (#94)
    • chore: update dependencies
      • collection: ^1.15.0
      • meta: ^1.3.0
    • docs: minor updates to README and example
    Open source →
  14. 2.0.0-nullsafety.4 26 Feb 2021 pre-release
    Release notes
    • feat: EquatableConfig.stringify defaults to true in debug mode.
    • fix: support legacy equality overrides with EquatableMixin
    Open source →
  15. 2.0.0-nullsafety.3 08 Feb 2021 pre-release
    Release notes
    • chore: update dependencies
      • collection: ^1.15.0
      • meta: ^1.3.0
    Open source →
  16. 2.0.0-nullsafety.2 08 Feb 2021 pre-release
    Release notes
    • fix: iterable equality comparisons (#101)
    • fix: stringify instance with long properties (#94)
    Open source →
  17. 2.0.0-nullsafety.1 06 Jan 2021 pre-release
    Release notes
    • BREAKING: stringify prints "null" for null properties instead of ""
    Open source →
  18. 2.0.0-nullsafety.0 22 Nov 2020 pre-release
    Release notes
    • BREAKING: opt into null safety
    • feat!: upgrade Dart SDK constraints to >=2.12.0-0 <3.0.0
    • docs: minor updates to README and example
    Open source →
  19. 1.2.6 08 Feb 2021
    Release notes
    • fix: iterable equality comparisons (#101)
    • fix: stringify instance with long properties (#94)
    Open source →
  20. 1.2.5 08 Sep 2020
    Release notes
    • docs: dartdoc improvements (#80)
    • docs: minor inline documentation improvements
    Open source →
  21. 1.2.4 23 Aug 2020
    Release notes
    • fix: EquatableMixin stringify respects EquatableConfig.stringify (#81)
    Open source →
  22. 1.2.3 25 Jul 2020
    Release notes
    • docs: inline, public documentation improvements (#78).
    • refactor: stricter analysis/lint rules
    Open source →
  23. 1.2.2 11 Jul 2020
    Release notes
    • Documentation badge fixes and updates
    Open source →
  24. 1.2.1 11 Jul 2020
    Release notes
    • Fix hashCode computation for Iterables (#74)
    • Minor documentation improvements
    Open source →
  25. 1.2.0 29 May 2020
    Release notes
    • Added EquatableConfig for global stringify configuration (#69)
    Open source →
  26. 1.1.1 02 Mar 2020
    Release notes
    • Updates to EquatableUtils documentation
    Open source →
  27. 1.1.0 10 Feb 2020
    Release notes
    • Fix hashCode error when props is null (#45)
    • Added stringify feature (optional toString override) (#45)
    Open source →
  28. 1.0.3 24 Jan 2020
    Release notes
    • Fix hashCode collisions for lists within props (#53)
    Open source →
  29. 1.0.2 03 Jan 2020
    Release notes
    • Fix internal lint warnings
    Open source →
  30. 1.0.1 24 Nov 2019
    Release notes
    • Fix hashCode collisions with Map properties (#43)
    Open source →
  31. 1.0.0 19 Nov 2019
    Release notes
    • Update hashCode implementation to use Jenkins Hash (#39)
    • Documentation Updates
    Open source →
  32. 0.6.1 02 Oct 2019
    Release notes
    • Minor documentation updates
    Open source →
  33. 0.6.0 27 Sep 2019
    Release notes
    • The props getter override is required for both Equatable and EquatableMixin
    • Performance Improvements
    Open source →
  34. 0.5.1 29 Aug 2019
    Release notes
    • Allow const constructors on Equatable class
    Open source →
  35. 0.5.0 26 Aug 2019
    Release notes
    • Removed EquatableMixinBase (now covered by EquatableMixin).
    • Typed EquatableMixin from List<dynamic> to List<Object> to fix linter issues with implicit-dynamic: false.
    Open source →
  36. 0.4.0 04 Aug 2019
    Release notes

    Update toString to default to runtimeType (#27)

    Open source →
  37. 0.3.0 15 Jul 2019
    Release notes

    Enforce Immutability (#25)

    Open source →
  38. 0.2.6 31 May 2019
    Release notes

    Improved support for collection types (#19)

    Open source →
  39. 0.2.5 24 May 2019
    Release notes

    Improved support for Iterable, List, Map, and Set props (#17)

    Open source →
  40. 0.2.4 19 May 2019
    Release notes

    Additional Minor Documentation Updates

    Open source →
  41. 0.2.3 09 Mar 2019
    Release notes

    Documentation Updates

    Open source →
  42. 0.2.2 26 Feb 2019
    Release notes

    Bug Fixes:

    • Equatable instances that are equal now have the same hashCode (#8)
    Open source →
  43. 0.2.1 25 Feb 2019
    Release notes

    Update Dart support to >=2.0.0 <3.0.0

    Open source →
  44. 0.2.0 21 Feb 2019
    Release notes

    Add EquatableMixin and EquatableMixinBase

    Open source →
  45. 0.1.10 26 Jan 2019
    Release notes

    Enhancements to toString override

    Open source →
  46. 0.1.9 24 Jan 2019
    Release notes

    equatable has 0 dependencies

    Open source →
  47. 0.1.8 23 Jan 2019
    Release notes

    Support Iterable props

    Open source →
  48. 0.1.7 23 Jan 2019
    Release notes

    Added toString override

    Open source →
  49. 0.1.6 10 Jan 2019
    Release notes

    Documentation Updates

    • Performance Tests
    Open source →
  50. 0.1.5 07 Jan 2019
    Release notes

    Additional Performance Optimizations & Documentation Updates

    Open source →
  51. 0.1.4 07 Jan 2019
    Release notes

    Performance Optimizations

    Open source →
  52. 0.1.3 07 Jan 2019
    Release notes

    Bug Fixes

    Open source →
  53. 0.1.2 07 Jan 2019
    Release notes

    Additional Updates to Documentation.

    • Logo Added
    Open source →
  54. 0.1.1 06 Jan 2019
    Release notes

    Minor Updates to Documentation.

    Open source →
  55. 0.1.0 06 Jan 2019
    Release notes

    Initial Version of the library.

    • Includes the ability to extend Equatable and not have to override == and hashCode.
    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