Metadata-Version: 2.5
Name: hishel
Version: 2.0.0
Summary:  Elegant HTTP Caching for Python
Project-URL: Homepage, https://hishel.com
Project-URL: Source, https://github.com/karpetrosyan/hishel
Author-email: Kar Petrosyan <kar.petrosyanpy@gmail.com>
License-File: LICENSE
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: AsyncIO
Classifier: Framework :: Trio
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: WWW/HTTP
Requires-Python: >=3.10
Requires-Dist: msgpack>=1.2.2
Requires-Dist: typing-extensions>=4.16.0
Provides-Extra: async
Requires-Dist: anyio>=4.14.2; extra == 'async'
Requires-Dist: anysqlite>=0.0.5; extra == 'async'
Provides-Extra: fastapi
Requires-Dist: anyio>=4.14.2; extra == 'fastapi'
Requires-Dist: anysqlite>=0.0.5; extra == 'fastapi'
Requires-Dist: fastapi>=0.141.1; extra == 'fastapi'
Provides-Extra: httpx
Requires-Dist: anyio>=4.14.2; extra == 'httpx'
Requires-Dist: anysqlite>=0.0.5; extra == 'httpx'
Requires-Dist: httpx>=0.28.1; extra == 'httpx'
Provides-Extra: httpx2
Requires-Dist: anyio>=4.9.0; extra == 'httpx2'
Requires-Dist: anysqlite>=0.0.5; extra == 'httpx2'
Requires-Dist: httpx2>=2.9.1; extra == 'httpx2'
Provides-Extra: redis
Requires-Dist: redis>=8.1.0; extra == 'redis'
Provides-Extra: requests
Requires-Dist: requests>=2.34.2; extra == 'requests'
Description-Content-Type: text/markdown


<p align="center">
  <img alt="Hishel Logo" width="350" src="https://raw.githubusercontent.com/karpetrosyan/hishel/master/docs/static/Shelkopryad_350x250_yellow.png#gh-dark-mode-only">
</p>

<h1 align="center">Hishel</h1>

<p align="center">
  <strong>Elegant HTTP Caching for Python</strong>
</p>

<p align="center">
  <a href="https://pypi.org/project/hishel">
    <img src="https://img.shields.io/pypi/v/hishel.svg" alt="PyPI version">
  </a>
  <a href="https://pypi.org/project/hishel">
    <img src="https://img.shields.io/pypi/pyversions/hishel.svg" alt="Python versions">
  </a>
  <a href="https://github.com/karpetrosyan/hishel/blob/master/LICENSE">
    <img src="https://img.shields.io/pypi/l/hishel" alt="License">
  </a>
  <a href="https://coveralls.io/github/karpetrosyan/hishel">
    <img src="https://img.shields.io/coverallsCoverage/github/karpetrosyan/hishel" alt="Coverage">
  </a>
  <a href="https://static.pepy.tech/badge/hishel/month">
    <img src="https://static.pepy.tech/badge/hishel/month" alt="Downloads">
  </a>
</p>

---

**Hishel** (հիշել, *to remember* in Armenian) is a modern HTTP caching library for Python. It adds caching to [HTTPX](https://www.python-httpx.org/), [Requests](https://requests.readthedocs.io/) and ASGI applications with minimal code changes, either by your own limits or by following the [RFC 9111](https://www.rfc-editor.org/rfc/rfc9111.html) specification.

## ✨ Features

- 🎯 **RFC 9111 Mode** - Optionally follow the latest HTTP caching specification
- 🔌 **Easy Integration** - Drop-in support for HTTPX, HTTPX2, Requests, ASGI and FastAPI
- 💾 **Flexible Storage** - SQLite and Redis backends, or write your own
- ⚡ **High Performance** - Efficient caching with minimal overhead
- 🔄 **Async & Sync** - Full support for both synchronous and asynchronous workflows
- 🎨 **Type Safe** - Fully typed with comprehensive type hints
- 🧪 **Well Tested** - Extensive test coverage and battle-tested
- 🎛️ **Configurable** - TTL, TTI and size limits, with per-request overrides
- 💨 **Memory Efficient** - Streaming support prevents loading large payloads into memory

Documentation is available at: [https://hishel.com](https://hishel.com)