Flutter Execution Utilities

style: very good analysis Powered by Mason License: MIT

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 installed on your machine.

Install via dart pub add:

dart pub add flutter_execution_utilities

Continuous Integration ๐Ÿค–

Flutter Execution Utilities comes with a built-in GitHub Actions workflow powered by Very Good Workflows 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 for a strict set of analysis options used by our team. Code coverage is enforced using the Very Good Workflows.


Running Tests ๐Ÿงช

To run all unit tests:

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.

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

# Open Coverage Report
open coverage/index.html

Libraries

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