asyncresil
Async resilience utilities for Python services. A small, focused toolkit extracted from production code so the same primitives can be shared across projects instead of re-implemented per repo.
The GitHub repo is named
aura-utilsfor historical reasons (this library was extracted from the Aura project'smcp_server/utils/). The PyPI package and Python module are bothasyncresil— installed viapip install asyncresiland imported asfrom asyncresil import ….
Modules
| Module | What it does | Why it exists |
|---|---|---|
http_client |
httpx-based async client with retries, exponential backoff, and timeouts |
Transient network failures shouldn't surface to callers — retry the obvious cases. |
circuit_breaker |
State machine (closed → open → half_open) that fails fast when a downstream is broken |
Stops cascading failures and retry storms when a dependency is down. |
rate_limiter |
Token-bucket limiter for async code | Stay under third-party API limits, smooth bursts. |
cache |
Cache protocol with MemoryCache (default) and RedisCache (optional dep) |
Skip repeat work — cut latency, cost, and downstream load. |
The four compose into a typical outbound call chain:
caller → cache → rate_limiter → circuit_breaker → http_client → external service
Each layer protects the layers below from unnecessary load.
Install
pip install asyncresil # core (in-memory cache only)
pip install 'asyncresil[redis]' # adds Redis-backed cache
Requires Python 3.11+.
Intended consumers
Internal services that need a shared resilience layer:
- Aura — MCP server (the original source of these utilities)
- Eval Framework — uses the cache + rate limiter for batched LLM evaluation
- Agentic Engine — uses the circuit breaker around tool calls
- LLM Gateway — uses the http client + circuit breaker for upstream provider calls
Status
0.1.0 — early alpha. API is not yet stable.
License
MIT — see LICENSE.
Release files for asyncresil 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| asyncresil-0.1.0.tar.gz | 7.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| asyncresil-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.9 kB
Release files / asyncresil-0.1.0.tar.gz
| Download URL | asyncresil-0.1.0.tar.gz |
|---|---|
| Size | 7.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c8d6fce9a8b937020aac2dccf2a8d554fbe8acc4aa97c5806420f5ff7da30fe6
|
|
BLAKE2b-256 checksum How to use checksums |
4e17ea995fbb955505e2b9d1d0fc607cd59468a1d596ef3e7cb7aa6d2b43a6a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 17, 2026.
Transparency logRelease files / asyncresil-0.1.0-py3-none-any.whl
| Download URL | asyncresil-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e9d8d2a9edd234bc584d533789d8b5871dabcd8e400044e48206a0a46213d091
|
|
BLAKE2b-256 checksum How to use checksums |
258a0bf5515b49d5b738ddbc0ff6c649ad69730e11434d380eff8550c1a1b475
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 17, 2026.
Transparency log