Freezed is a Dart code generator for creating immutable data classes, tagged unions, and related model types with minimal boilerplate. It generates constructors, equality, hash codes, toString, and copyWith functionality from concise class declarations. Union types can represent multiple states through separate constructors while retaining exhaustive type-safe handling. JSON serialization integrates with json_serializable, including support for generic argument factories. Project-wide or per-model options can enable or disable generated behaviors such as equality and copying. Freezed works with Dart and Flutter through the standard build_runner workflow. It is especially useful for application state, API models, and strongly typed domain objects.
Features
- Immutable data class generation
- Tagged union and sealed model support
- Generated copyWith, equality, and hashCode
- JSON serialization integration
- Generic type serialization support
- Dart and Flutter build_runner workflow