Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/0niel/flutter_execution_utilities

A collection of execution control utilities for Flutter and Dart, including debounce, throttle, memoization, retry mechanisms, and more
https://github.com/0niel/flutter_execution_utilities

Last synced: 2 months ago
JSON representation

A collection of execution control utilities for Flutter and Dart, including debounce, throttle, memoization, retry mechanisms, and more

Awesome Lists containing this project

README

        

# Flutter Execution Utilities

[![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link]
[![Powered by Mason](https://img.shields.io/endpoint?url=https%3A%2F%2Ftinyurl.com%2Fmason-badge)](https://github.com/felangel/mason)
[![License: MIT][license_badge]][license_link]

A collection of execution control utilities for Flutter and Dart, including debounce, throttle, memoization, retry mechanisms, and more

## โœจ Features

- ๐Ÿ”„ **Debounce**: Delay function execution until a specified time has elapsed since the last call.
- โšก **Throttle**: Limit the number of times a function can be called over time.
- ๐Ÿง  **Memoization**: Cache function results based on input arguments.
- ๐Ÿ” **Retry Mechanism**: Retry failed asynchronous operations with configurable retries and delays.
- ๐Ÿ“ฆ **Batcher**: Batch multiple function calls into a single execution.
- ๐Ÿšฆ **Rate Limiter**: Control the rate of function execution.
- ๐Ÿ›‘ **Circuit Breaker**: Prevent repeated failures by halting function execution when errors exceed a threshold.
- ๐Ÿ’ก **Supports both synchronous and asynchronous functions**.
- ๐Ÿš€ **Easy integration with Flutter applications**.

## Installation ๐Ÿ’ป

**โ— In order to start using Flutter Execution Utilities you must have the [Dart SDK][dart_install_link] installed on your machine.**

Install via `dart pub add`:

```sh
dart pub add flutter_execution_utilities
```

---

## Continuous Integration ๐Ÿค–

Flutter Execution Utilities comes with a built-in [GitHub Actions workflow][github_actions_link] powered by [Very Good Workflows][very_good_workflows_link] but you can also add your preferred CI/CD solution.

Out of the box, on each pull request and push, the CI `formats`, `lints`, and `tests` the code. This ensures the code remains consistent and behaves correctly as you add functionality or make changes. The project uses [Very Good Analysis][very_good_analysis_link] for a strict set of analysis options used by our team. Code coverage is enforced using the [Very Good Workflows][very_good_coverage_link].

---

## Running Tests ๐Ÿงช

To run all unit tests:

```sh
dart pub global activate coverage 1.2.0
dart test --coverage=coverage
dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info
```

To view the generated coverage report you can use [lcov](https://github.com/linux-test-project/lcov).

```sh
# Generate Coverage Report
genhtml coverage/lcov.info -o coverage/

# Open Coverage Report
open coverage/index.html
```

[dart_install_link]: https://dart.dev/get-dart
[github_actions_link]: https://docs.github.com/en/actions/learn-github-actions
[license_badge]: https://img.shields.io/badge/license-MIT-blue.svg
[license_link]: https://opensource.org/licenses/MIT
[logo_black]: https://raw.githubusercontent.com/VGVentures/very_good_brand/main/styles/README/vgv_logo_black.png#gh-light-mode-only
[logo_white]: https://raw.githubusercontent.com/VGVentures/very_good_brand/main/styles/README/vgv_logo_white.png#gh-dark-mode-only
[mason_link]: https://github.com/felangel/mason
[very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg
[very_good_analysis_link]: https://pub.dev/packages/very_good_analysis
[very_good_coverage_link]: https://github.com/marketplace/actions/very-good-coverage
[very_good_ventures_link]: https://verygood.ventures
[very_good_ventures_link_light]: https://verygood.ventures#gh-light-mode-only
[very_good_ventures_link_dark]: https://verygood.ventures#gh-dark-mode-only
[very_good_workflows_link]: https://github.com/VeryGoodOpenSource/very_good_workflows