riverpod_generator
A code generator for Riverpod. This both simplifies the syntax empowers it, such as allowing stateful hot-reload.
4.0.8
890K downloads/mo
#376 most downloaded on pub.dev
rrousselGit/riverpod
What this package is like to depend on
Last release 26 days ago
28 Jul 2026
Ships fairly regularly
a new release about every 5 weeks
Nearly every release is documented
notes for 57 of 58 stable releases
5 versions withdrawn
withdrawn after publishing
4 years old
82 releases · first in 2022
17 releases in the last 12 months
see the full history below
Release timeline
82 releases · Sep 2022 to Jul 2026Releases
latest 60 of 82-
4.0.828 Jul 2026Release notes
Open source →riverpod_annotation : 4.0.5 -> 4.0.6
riverpod_sqflite : 0.4.5 -> 0.4.6
riverpod_generator : 4.0.7 -> 4.0.8
flutter_riverpod : 3.4.1 -> 3.4.2
riverpod_lint : 3.1.7 -> 3.1.8
hooks_riverpod : 3.4.1 -> 3.4.2 -
4.0.727 Jul 2026 -
4.0.626 Jul 2026 -
4.0.410 Jun 2026Release notes
Open source →- Fix
AsyncNotifierProvider/StreamNotifierProviderdisposing dependencies watched after an asynchronous gap during rebuild. (thanks to @a1573595)
Dependency changes
riverpod_annotationupgraded to4.0.3
- Fix
-
4.0.4-dev.306 May 2026 pre-release -
4.0.4-dev.203 May 2026 pre-releaseRelease notes
Open source →Upgrade
riverpodDependency changes
riverpod_annotationupgraded to4.0.3-dev.1
-
4.0.4-dev.123 Apr 2026 pre-releaseRelease notes
Open source →Support analyzer 12
Dependency changes
riverpod_analyzer_utilsupgraded to1.0.0-dev.10
-
4.0.303 Feb 2026 -
4.0.217 Jan 2026 -
4.0.117 Jan 2026 -
4.0.026 Dec 2025 withdrawnRelease notes
Open source →- Generated providers are no-longer constant
- Fix a bug when using
Class.staticVariableas parameter to@Riverpod(retry: ...) - Fix Notifiers returning a
Future<void> - Fix providers from part files not being generated (thanks to @tguerin)
-
4.0.0+128 Dec 2025 -
3.0.309 Oct 2025 -
3.0.207 Oct 2025 -
3.0.130 Sep 2025 -
3.0.010 Sep 2025Release notes
Open source →Finally, a stable release for Riverpod 3.0!
For the full changelog, check out https://riverpod.dev/docs/whats_new
-
3.0.0-dev.1809 Sep 2025 pre-releaseRelease notes
Open source →- Fix invalid generated code when a
Notifierusesstatic constas default value for some of itsbuildparameters. - Support records with a single value.
- Set the default for
provider_name_strip_patterntoNotifier$.
- Fix invalid generated code when a
-
3.0.0-dev.1701 Aug 2025 pre-releaseRelease notes
Open source →- Fixed a conflict between public and private providers of the same name
- Allow passing
persist(key: ...) - Bump minimum
metaversion - Support
@Riverpod(name: ...) - Add
provider_name_strip_patternbuild option - Bump minimum
metaversion - Support
@Riverpod(name: ...) - Added
MutationState.isPending/isIdle/hasError/isSuccess - fixes various "pause" issues
- Bump minimum
metaversion - Added
AsyncValue.retrying, to check when a retry is scheduled or pending - Exposed the default retry implementation (
ProviderContainer.defaultRetry) - Offline's Storage now is
baseand requires overridingdeleteOutOfDate - Make AsyncValue.copyWithPrevious
@internal. This API was not meant to be public.
-
3.0.0-dev.1620 Jun 2025 pre-release -
3.0.0-dev.1504 May 2025 pre-release -
3.0.0-dev.1402 May 2025 pre-releaseRelease notes
Open source →riverpodupgraded to3.0.0-dev.14riverpod_annotationupgraded to3.0.0-dev.14
-
3.0.0-dev.1301 May 2025 pre-releaseRelease notes
Open source →riverpodupgraded to3.0.0-dev.13riverpod_annotationupgraded to3.0.0-dev.13
-
3.0.0-dev.1230 Apr 2025 pre-releaseRelease notes
Open source →-
Breaking Removed support for
@riverpod external int fn();. -
Breaking Family arguments are no-longer available on the
Refobject. The various override methods now take two parameters:@riverpod String example(Ref ref, int arg, {required int anotherArg}) {...} // ... exampleProvider.overrideWith( (ref, ({int arg, int anotherArg}) args) { } ) -
Added support for mutations. See also
@mutationfor further information. -
Added support for
@Riverpod(retry: ...)
-
-
3.0.0-dev.1127 Nov 2023 pre-releaseRelease notes
Open source →riverpod_annotationupgraded to3.0.0-dev.3riverpodupgraded to3.0.0-dev.3
-
3.0.0-dev.1020 Nov 2023 pre-releaseRelease notes
Open source →riverpod_annotationupgraded to3.0.0-dev.2riverpodupgraded to3.0.0-dev.2
-
3.0.0-dev.920 Nov 2023 pre-release -
3.0.0-dev.830 Oct 2023 pre-release -
3.0.0-dev.729 Oct 2023 pre-releaseRelease notes
Open source →-
Providers can now be generic:
@riverpod List<T> example<T extends num>(ExampleRef<T> ref) { return <T>[]; } @riverpod class ClassExample<T> extends _$ClassExample<T> { @override List<T> build() => <T>[]; }Specifying type parameters works the same as specifying arguments, and make the generated provider a "function":
ref.watch(example<int>()); -
Upgraded to use Riverpod 3.0
-
Fixed
family.overrideWithmissing
-
-
3.0.0-dev.628 Oct 2023 pre-releaseNothing published for this version
-
3.0.0-dev.521 Oct 2023 pre-release -
3.0.0-dev.415 Oct 2023 pre-release withdrawnRelease notes
Open source →- Annotating a provider with
@deprecatedand a few other annotations also annotate the generated code accordingly (thanks to @SunlightBro) provider.argumentis now a record of all arguments in a provider.
- Annotating a provider with
-
3.0.0-dev.305 Oct 2023 pre-releaseRelease notes
Open source →riverpod_analyzer_utilsupgraded to0.4.1riverpod_annotationupgraded to2.2.0
-
3.0.0-dev.202 Oct 2023 pre-release -
3.0.0-dev.102 Oct 2023 pre-release withdrawnRelease notes
Open source →The code generator now supports import aliases, generated types and typedefs as input of providers!.
This comes with a few minor restrictions:
-
Breaking: Returning a Typedef or type Future/FutureOr/Stream is no-longer supported:
typedef Example = Future<int>; @riverpod Example foo(FooRef ref) async => 0; -
Breaking: Arguments of the form
fn(void myParameter())are no-longer supported. Instead usefn(void Function() myParameter).
-
-
2.6.528 Feb 2025 -
2.6.408 Jan 2025 -
2.6.318 Nov 2024 -
2.6.227 Oct 2024 -
2.6.122 Oct 2024Release notes
Open source →- Support analyzer >=6.7.0 <7.0.0 This should make it compatible with Flutter's stable channel.
-
2.6.020 Oct 2024Release notes
Open source →- Deprecated the generated
Refsubclasses. Instead of:
Do:@riverpod Model foo(FooRef ref) => ..@riverpod Model foo(Ref ref) => ..
- Deprecated the generated
-
2.4.412 Oct 2024 -
2.4.318 Aug 2024 -
2.4.214 May 2024 -
2.4.114 May 2024 withdrawn -
2.4.010 Mar 2024Release notes
Open source →- Adds
provider_name_prefixandprovider_family_name_prefixtobuild.yaml. (thanks to @ValentinVignal) - Generated providers are now always
const. - Added support for abstract
buildmethod on Notifiers:
This is equivalent to writing:@riverpod class Example extends _$Example { @override int build(); }@Riverpod(dependencies: []) class Example extends _$Example { @override int build() => throw UnimplementedError(); } - Added support for documentation and annotations on providers/parameters.
Comments on providers and family parameters will be
injected in the generated code, for IDE documentation
in the relevant places.
Annotations will be pasted over, such as to mark parameters
as
@deprecatedeverywhere. - Updated to support latest
riverpod_analyzer_utils
- Adds
-
2.3.1104 Feb 2024 -
2.3.1003 Feb 2024Release notes
Open source →- Improved error handling if:
- a Notifier has no default constructor
- a Notifier has has a default constructor but with required parameters
- a Notifier is abstract
- Improved error handling if:
-
2.3.926 Nov 2023 -
2.3.820 Nov 2023 -
2.3.720 Nov 2023 -
2.3.613 Nov 2023 -
2.3.521 Oct 2023 -
2.3.419 Oct 2023 withdrawn -
2.3.327 Sep 2023Release notes
Open source →riverpod_analyzer_utilsupgraded to0.3.4riverpod_annotationupgraded to2.1.6
-
2.3.204 Sep 2023 -
2.3.128 Aug 2023 -
2.3.028 Aug 2023Release notes
Open source →- The "ref" object now contains the provider parameters too.
This enabled
provider.overrideWithto use the provider arguments:@riverpod int example(ExampleRef ref, {int? id}) { /* */ } // ... exampleProvider.overrideWith( (ref) { print(ref.id); } ) - Fix all
provider.overrideWithcausing a cast error if the notifier receives arguments.
- The "ref" object now contains the provider parameters too.
This enabled
-
2.2.616 Aug 2023 -
2.2.503 Aug 2023 -
2.2.425 Jul 2023