A Rust utility library for fault tolerance, including retry strategies, backoff mechanisms, failure handling and much more.
π Loved the work? Subscribe to my YouTube channel or consider giving this repository a β to show your support!
Features
| Type | Feature | Status |
|---|---|---|
| Synchronous | Retry | β Stable |
| Synchronous | Retry-with-backoff | π§ Under Development |
| Asynchronous | Retry | β Stable |
| Asynchronous | Retry-with-backoff | π§ Under Development |
| Asynchronous | Circuit Breaker | π οΈ Planned |
| Synchronous/Asynchronous | More Examples | π οΈ Planned |
π¦ How to Use resilient-rs
Hereβs a quick example of how to use the resilient-rs crate in your Rust project.
1οΈβ£ Add resilient-rs to Your Cargo.toml
Add the following line to your Cargo.toml file:
[]
= "0.1.0" # Replace with the latest version
OR
Synchronous
use Duration;
use RetryConfig;
use retry;
Asynchronous
use Duration;
use ;
async
async
π Contributing Guidelines
We welcome contributions to this project! Please follow these steps to contribute:
π For Issues
- If you find an issue you'd like to work on, please comment on the issue and tag me (
@semicolon-10) to assign it to you.
π‘ Tip: Make sure the issue is not already assigned to someone else! - Once assigned, you can start working on the issue. π
π For Planned Features
- If you'd like to work on a feature listed in the "Planned" section of the README, first create a new issue for that feature.
π Note: Clearly describe your approach or any details about how you plan to implement the feature. - Tag me (
@semicolon-10) in the issue and request assignment. πββοΈ
π§ Submitting Your Work
- π΄ Fork the repository and create a new branch for your work.
- π οΈ Make your changes and ensure they are well-tested.
- β Make sure all pipelines pass successfully before tagging me for review.
- π€ Submit a pull request (PR) with a clear description of the changes you made.
- π Link the issue you worked on in the PR description.
π€ Code of Conduct
- Be respectful and collaborative when interacting with other contributors. π€
- Ensure your code follows the project's coding standards and guidelines. β
π οΈ Example Workflow
- π Find an issue or planned feature you'd like to work on.
- π¬ Comment on the issue or create a new issue for the planned feature.
- π Tag me (
@semicolon-10) to assign the issue to you. - ποΈ Work on the issue in your forked repository and submit a pull request.