Package selection guidance compiled from public package information, community data, and project usage.
The retry package provides a simple utility to wrap asynchronous functions with automatic retry logic using exponential back-off. It's particularly useful for network requests that may fail temporarily due to connectivity issues. By wrapping a function with retry logic, developers can ensure robustness without manually implementing retry mechanisms. The package is designed to be lightweight and integrates seamlessly into Dart applications. It supports all major platforms including Android, iOS, Web, macOS, Windows, and Linux.
Use cases
Network request resilience
API call retries
Temporary service outages
Background task reliability
Database operation retries
Streaming data recovery
Key features
Exponential back-off strategy
Automatic retry on failure
Configurable retry count
Supports async/await
Lightweight and minimal dependencies
Platform-agnostic
Suitable for
Network-heavy apps
Cloud service integrations
Offline-first applications
Microservices communication
Real-time data synchronization
High-availability systems
Considerations
May increase latency during failures
Not suitable for idempotent operations without care
Requires careful configuration of retry limits
Can lead to resource exhaustion if misused
Best paired with timeout handling
Should not replace proper error handling
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
Dart Neats
A collection of a small neat packages for dart.
Disclaimer: This is not an officially supported Google product.
This repository is meant as a playground where small neat packages are
cultivated. If package grows too large and complex and needs a dedicated issue
tracker it should be moved to a dedicated repository.
Each folder in this repository contains a neatpub package. This project
aims to use a separate package whenever it makes sense to have an independent
major version. This often means splitting functionality into separate packages,
which can be reused independently.
Utility for vendoring packages into a project and rewriting import/export statements.
Repository Management
Packages in this repository uses pub workspaces
a single dart pub get will resolve dependencies for all of them.
Configuration of Github Actions, issue templates, issue labels, etc is automated
with scripts in tool/.
Contributing
We love patches and contributions, please refer to CONTRIBUTING.md for
technicalities on CLA and community guidelines. As this project aims to
build neat packages using other neat packages we might also accept proposals
for new neat packages, though it's often easier to publish independently.
License
Unless stated otherwise contents in this repository is licensed under
Apache License 2.0, see LICENSE.