NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #145 most downloaded on pub.dev
A Dart package that helps to implement value based equality without needing to explicitly override == and hashCode.
Last release 22 days ago
15 Sep 2026
Ships unpredictably
gaps range from 3 weeks to 2.2 years
Nearly every release is documented
notes for 48 of 48 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
56 releases · first in 2019
refactor!: remove EquatableMixin by @felangel in #217
One column per quarter.
feat: use covariant in operator== override for improved type safety
covariant in operator== override for improved type safetymacros to topics in pubspec.yamlBREAKING feat!: rewrite using macros
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;
}class Foo with EquatableMixin {...} // OLD class Foo with Equatable {...} // NEW
EquatableMixin (#214)
class Foo with EquatableMixin {...} // OLD
class Foo with Equatable {...} // NEWEquatableMixin (#214)class Foo with EquatableMixin {...} // OLD
class Foo with Equatable {...} // NEW
Nothing published for this version
fix: improve mapEquals to correctly compare maps with different key… by @Danilospano00 in #207
mapEquals to correctly compare maps with different key… by @Danilospano00 in #207Full Changelog: v2.0.7...v2.0.8
fix: explicitly handle num equality comparisons by @felangel in #189
fix: add @immutable to EquatableMixin by @felangel in #154
analysis_options.yaml by @felangel in #169toString logic by @Amir-P in #140funding and topics to pubspec.yaml by @felangel in #176Full Changelog: v2.0.5...v2.0.6
README (#184)pubspec.yaml (#176)toString logic (#140)READMEanalysis_options.yaml (#169)@immutable to EquatableMixin (#154)fix: resolves T not a subtype of type 'Comparable<dynamic>' when computing hashCode
T not a subtype of type 'Comparable<dynamic>' when computing hashCodeT not a subtype of type 'Comparable<dynamic>' when computing hashCodefix: use SplayTreeSet to resolve inconsistent hashCode for properties of type Set
SplayTreeSet to resolve inconsistent hashCode for properties of type Set (#142)fix: revert EquatableMixin == to use Object
EquatableMixin == to use Object (#122)fix: Map prop with non-comparable key
Map prop with non-comparable keyfix: hashCode should be the same for equal objects (Map fix)
hashCode should be the same for equal objects (Map fix)feat!: upgrade Dart SDK constraints to >=2.12.0-0 <3.0.0
>=2.12.0-0 <3.0.0EquatableConfig.stringify defaults to true in debug mode.EquatableMixincollection: ^1.15.0meta: ^1.3.0README and examplefeat: EquatableConfig.stringify defaults to true in debug mode.
EquatableConfig.stringify defaults to true in debug mode.EquatableMixin- chore: update dependencies - collection: ^1.15.0 - meta: ^1.3.0
collection: ^1.15.0meta: ^1.3.0fix: iterable equality comparisons
BREAKING: stringify prints "null" for null properties instead of ""
feat!: upgrade Dart SDK constraints to >=2.12.0-0 <3.0.0
>=2.12.0-0 <3.0.0README and examplefix: iterable equality comparisons
docs: minor inline documentation improvements
fix: EquatableMixin stringify respects EquatableConfig.stringify
EquatableMixin stringify respects EquatableConfig.stringify (#81)docs: inline, public documentation improvements (#78).
Documentation badge fixes and updates
Fix hashCode computation for Iterables
hashCode computation for Iterables (#74)Added EquatableConfig for global stringify configuration
EquatableConfig for global stringify configuration (#69)Updates to EquatableUtils documentation
EquatableUtils documentationFix hashCode error when props is null
Fix hashCode collisions for lists within props
hashCode collisions for lists within props (#53)- Fix internal lint warnings
Fix hashCode collisions with Map properties
hashCode collisions with Map properties (#43)Update hashCode implementation to use Jenkins Hash
Jenkins Hash (#39)- Minor documentation updates
The props getter override is required for both Equatable and EquatableMixin
props getter override is required for both Equatable and EquatableMixinAllow const constructors on Equatable class
Equatable classRemoved EquatableMixinBase (now covered by EquatableMixin).
EquatableMixinBase (now covered by EquatableMixin).EquatableMixin from List<dynamic> to List<Object> to fix linter
issues with implicit-dynamic: false.Update toString to default to runtimeType
Update toString to default to runtimeType (#27)
Enforce Immutability
Enforce Immutability (#25)
Improved support for collection types
Improved support for collection types (#19)
Improved support for Iterable, List, Map, and Set props
Improved support for Iterable, List, Map, and Set props (#17)
Additional Minor Documentation Updates
Additional Minor Documentation Updates
Documentation Updates
Documentation Updates
Equatable instances that are equal now have the same hashCode
Bug Fixes:
Equatable instances that are equal now have the same hashCode (#8)Update Dart support to >=2.0.0 <3.0.0
Update Dart support to >=2.0.0 <3.0.0
Add EquatableMixin and EquatableMixinBase
Add EquatableMixin and EquatableMixinBase
Enhancements to toString override
Enhancements to toString override
equatable has 0 dependencies
equatable has 0 dependencies
Support Iterable props
Support Iterable props
Added toString override
Added toString override
Documentation Updates - Performance Tests
Documentation Updates
Additional Performance Optimizations & Documentation Updates
Additional Performance Optimizations & Documentation Updates
Performance Optimizations
Performance Optimizations
Bug Fixes
Bug Fixes
Additional Updates to Documentation.
Additional Updates to Documentation.
Minor Updates to Documentation.
Minor Updates to Documentation.
Initial Version of the library.
Initial Version of the library.
Equatable and not have to override == and hashCode.Your coding agent can read these notes before it upgrades. Set up the MCP server →