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. He creates high-performance, production-ready libraries and tools for the Flutter ecosystem.
Connect To idris
- Portfolio: idris-ghamid.linkpc.net
- GitHub: idris ghamid
- LinkedIn: Idris Ghamid
- Instagram: @idris.ghamid
- X (Twitter): @IdrisGhamid
Star History
Made by idris ghamid
⭐ If Rift helps you, give it a star on GitHub!