reqadence is a small, reusable base layer for building asynchronous REST API clients in Python. Instead of re-implementing the same request-handling logic for every service, you subclass a single base class and get automatic retries, rate limiting, response caching, and JSON parsing out of the box.
It is built on top of httpx and is designed to be the shared foundation for higher-level clients.
- Async-first HTTP client built on
httpx. - Automatic retries with exponential backoff and full jitter, honoring
Retry-Afterheaders. - Leaky-bucket rate limiting via
aiolimiter. - Pluggable response caching (RFC 9111 or force-cache) via
hishel. - A clear error hierarchy distinguishing transient from permanent failures.
- Fully typed, with JSON and XML response support.
Clone the repository:
git clone git@github.com:durrantlab/reqadence.gitMove into the directory and install with pixi:
cd reqadence
pixi installThis creates an isolated environment with all dependencies and installs
reqadence into it (as an editable install, per the project's
pypi-dependencies). Activate the environment with:
pixi shellTODO:
We use pixi to manage Python environments and
simplify the developer workflow. If you have already run pixi install (see
Installation), the development environment is ready to use.
This project is released under the Apache-2.0 License as specified in
LICENSE.md.