rift_generator 1.0.0
rift_generator: ^1.0.0 copied to clipboard
Code generator for Rift — automatically generates TypeAdapters to store any Dart class. Supports Dart 3 Records, sealed classes, and extension types.
rift_generator #
Code generator for Rift — automatically generates TypeAdapters to store any Dart class.
Features #
- Auto-generated TypeAdapters — No manual serialization code
- Dart 3 Support — Records, sealed classes, extension types
- Schema Migration — Built-in migration for evolving data models
- Freezed Support — Works seamlessly with
@freezedclasses GenerateAdaptersAnnotation — One annotation to generate all adapters- HiveRegistrar — Register all adapters in one call
Installation #
dependencies:
rift: ^1.0.0
dev_dependencies:
rift_generator: ^1.0.0
build_runner: ^2.4.0
Usage #
1. Annotate your class #
import 'package:rift/rift.dart';
part 'user.g.dart';
@RiftType()
class User {
@RiftField(0)
String name;
@RiftField(1)
int age;
@RiftField(2, defaultValue: '')
String email;
User({required this.name, required this.age, this.email = ''});
}
2. Run the generator #
dart run build_runner build
3. Register adapters #
// Auto-generated registrar
final registrar = RiftRegistrar();
registrar.registerAllAdapters();
// Or manually
Hive.registerAdapter(UserAdapter());
GenerateAdapters Annotation #
@GenerateAdapters([AdapterSpec<User>(fields: {0: 'name', 1: 'age'})])
class App {}
Migration from hive_ce_generator #
- Replace
import 'package:hive_ce_generator/hive_ce_generator.dart'with Rift equivalents @HiveType()→@RiftType()@HiveField()→@RiftField()- All generated code is compatible with Rift core
Related Packages #
| Package | Description |
|---|---|
| rift | Core database library |
| rift_flutter | Flutter integration |
| rift_inspector | DevTools inspector UI |
License #
Apache License 2.0
About Author #
Idris Ghamid is a software engineer and open-source contributor specializing in Flutter, Dart, and mobile development.
Connect with Idris #
- GitHub: idrisghamid
- LinkedIn: Idris Ghamid
- Instagram: @idris.ghamid
- X (Twitter): @IdrisGhamid
Made with ❤️ by Idris Ghamid