rrousselGit/riverpod
rrousselGit/riverpod has 7,417 GitHub stars and 1,119 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-06 11:28 UTC. Last push 2026-11-01.
A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
Measured star growth
- in 24h
- +1
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
A reactive caching and data-binding framework. https://riverpod.dev Riverpod makes working with asynchronous code a breeze by:
- Handling errors/loading states by default. No need to manually catch errors
- Natively supporting advanced scenarios, such as pull-to-refresh
- Separating the logic from your UI
- Ensuring your code is testable, scalable and reusable
| riverpod | |
|---|---|
| flutter_riverpod | |
| hooks_riverpod |
Welcome to Riverpod (anagram of Provider)!
For learning how to use Riverpod, see its documentation: >>> https://riverpod.dev <<<
Long story short:
Define network requests by writing a function annotated with
@riverpod:@riverpod Future<String> breweryName(Ref ref) async { final response = await http.get( Uri.https('api.openbrewerydb.org', '/v1/breweries/random'), ); final json = jsonDecode(response.body) as List; return (json.first as Map)['name']! as String; }Listen to the network request in your UI and gracefully handle loading/error states.
class Home extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final breweryName = ref.watch(breweryNameProvider); // Perform a switch-case on the result to handle loading/error states return switch (breweryName) { AsyncData(:final value) => Text('data: $value'), AsyncError(:final error) => Text('error: $error'), _ => const Text('loading'), }; } }
Contributing
Contributions are welcome!
Here is a curated list of how you can help:
- Report bugs and scenarios that are difficult to implement
- Report parts of the documentation that are unclear
- Fix typos/grammar mistakes
- Update the documentation or add examples
- Implement new features by making a pull-request
Sponsors
Explore related projects
freeCodeCamp/freeCodeCamp
freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.
458,666 starsdonnemartin/system-design-primer
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
377,115 starsreact/react
The library for web and native user interfaces.
252,217 starsvuejs/vue
This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core
212,598 stars