Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/mharrisb1/httpx-retry

Middleware for implementing retry policies with HTTPX
https://github.com/mharrisb1/httpx-retry

httpx retry retry-policy

Last synced: 20 days ago
JSON representation

Middleware for implementing retry policies with HTTPX

Awesome Lists containing this project

README

        


RESPX



HTTPX Retry - Middleware for implementing retry policies with HTTPX

---

## Usage

Retries are defined at the transport layer.

```python
import httpx

from httpx_retry import HTTPRetryTransport, RetryPolicy

exponential_retry = (
RetryPolicy()
.with_attempts(3)
.with_min_delay(100)
.with_multiplier(2)
.with_retry_on(lambda code: code >= 500)
)

client = httpx.Client(transport=HTTPRetryTransport(policy=exponential_retry))
res = client.get("https://example.com")
```

## Examples

There are examples of implementing common retry policies in [`/tests`](./tests)

- [Adaptive Retry](./tests/test_adaptive_retry.py)
- [Circui Breaker](./tests/test_circuit_breaker.py)
- [Exponential Backoff](./tests/test_exponential_backoff.py)
- [Fibonacci Backoff](./tests/test_fibonacci_backoff.py)
- [Fixed Delay](./tests/test_fixed_delay.py)
- [Immediate Retry](./tests/test_immediate_retry.py)
- [Jitter](./tests/test_jitter.py)
- [Linear Backoff](./tests/test_linear_backoff.py)

## Installation

[![PyPI version](https://badge.fury.io/py/httpx-retry.svg)](https://badge.fury.io/py/httpx-retry)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/httpx-retry.svg)](https://pypi.org/project/httpx-retry/)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/httpx-retry)](https://pypi.org/project/httpx-retry/)

Available in [PyPI](https://pypi.org/project/httpx-retry)

```sh
pip install httpx-retry
```

## License

[![PyPI - License](https://img.shields.io/pypi/l/httpx-retry)](https://opensource.org/blog/license/mit)

See [LICENSE](https://github.com/mharrisb1/httpx-retry/blob/main/LICENSE) for more info.

## Contributing

[![Open Issues](https://img.shields.io/github/issues/mharrisb1/httpx-retry)](https://github.com/mharrisb1/httpx-retry/issues)
[![Stargazers](https://img.shields.io/github/stars/mharrisb1/httpx-retry?style)](https://pypistats.org/packages/httpx-retry)

See [CONTRIBUTING.md](https://github.com/mharrisb1/httpx-retry/blob/main/CONTRIBUTING.md) for info on PRs, issues, and feature requests.

## Changelog

See [CHANGELOG.md](https://github.com/mharrisb1/httpx-retry/blob/main/CHANGELOG.md) for summarized notes on changes or view [releases](https://github.com/mharrisb1/httpx-retry/releases) for more details information on changes.