NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2386 most downloaded on PyPI
Elegant HTTP Caching for Python
Last release 18 days ago
16 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 52 of 54 stable releases
2 versions withdrawn
withdrawn after publishing
3 years old
61 releases · first in 2023
One column per quarter.
move response re-chunking from integrations into storages by @karpetrosyan
Full Changelog: 1.3.1...1.4.0
remove deprecated refresh_ttl_on_access from storages by @karpetrosyan
Full Changelog: 1.3.0...1.3.1
Full Changelog: https://github.com/karpetrosyan/hishel/compare/1.2.1...1.3.1
remove egg folder from source by @karpetrosyan
Full Changelog: 1.2.1...1.3.0
explicitly set build backend by @karpetrosyan
Full Changelog: 1.2.0...1.2.1
improve sqlite concurrency by @karpetrosyan
Full Changelog: 1.1.10...1.2.0
fix non-existing rfc reference by @karpetrosyan
Full Changelog: 1.1.9...1.1.10
chore: drop python 3.9 support by @CharString in #418
Full Changelog: 1.1.8...1.1.9
chore(ci): remove redis action by @karpetrosyan in #428
Full Changelog: 1.1.7...1.1.8
refactor(storage): create sqlite database path only when creating connections by @jeefberkey in #426
Full Changelog: 1.1.6...1.1.7
remove some stale httpx configs by @karpetrosyan
Full Changelog: 1.1.5...1.1.6
filter out soft-deleted, expired and incomplete entries in get_entries by @karpetrosyan
get_entries by @karpetrosyanFull Changelog: 1.1.4...1.1.5
don't raise an error on consumed streams that were read into memory by @karpetrosyan
Full Changelog: https://github.com/karpetrosyan/hishel/compare/1.1.3...1.1.4
improve git-cliff docs by @karpetrosyan
after_revalidation=True for NeedsToBeUpdated -> FromCache transition by @jlopex in #402Full Changelog: https://github.com/karpetrosyan/hishel/compare/1.1.2...1.1.3
fix: respect shared option when excluding unstorable headers by @jlopex in #401
Full Changelog: https://github.com/karpetrosyan/hishel/compare/1.1.1...1.1.2
<!-- generated by git-cliff -->
Full Changelog: https://github.com/karpetrosyan/hishel/compare/1.1.1...1.1.2
All notable changes to this project will be documented in this file.
All notable changes to this project will be documented in this file.
Full Changelog: https://github.com/karpetrosyan/hishel/compare/1.1.0...1.1.1
All notable changes to this project will be documented in this file.
All notable changes to this project will be documented in this file.
base via database_path for sqlite storagedatabase_path for sqlite storage by @karpetrosyanFull Changelog: https://github.com/karpetrosyan/hishel/compare/1.0.0...1.1.0
All notable changes to this project will be documented in this file.
All notable changes to this project will be documented in this file.
Full Changelog: https://github.com/karpetrosyan/hishel/compare/1.0.0b1...1.0.0
All notable changes to this project will be documented in this file.
All notable changes to this project will be documented in this file.
Transfer-Encoding header for asgi responsesuse_body_key settingTransfer-Encoding header for asgi responses by @karpetrosyanuse_body_key setting by @karpetrosyanFull Changelog: https://github.com/karpetrosyan/hishel/compare/1.0.0.dev3...1.0.0b1
All notable changes to this project will be documented in this file.
All notable changes to this project will be documented in this file.
publish.ymlpublish.yml by @karpetrosyanFull Changelog: https://github.com/karpetrosyan/hishel/compare/1.0.0.dev2...1.0.0.dev3
All notable changes to this project will be documented in this file.
All notable changes to this project will be documented in this file.
Full Changelog: https://github.com/karpetrosyan/hishel/compare/1.0.0.dev1...1.0.0.dev2
All notable changes to this project will be documented in this file.
All notable changes to this project will be documented in this file.
anysqlite optional dependencyanysqlite optional dependency by @karpetrosyanFull Changelog: https://github.com/karpetrosyan/hishel/compare/1.0.0.dev0...1.0.0.dev1
*(docs)* Use mike powered versioning
Full Changelog: https://github.com/karpetrosyan/hishel/compare/0.1.5...1.0.0.dev0
*(perf)* Set chunk size to 128KB for httpx to reduce SQLite read/writes
Full Changelog: https://github.com/karpetrosyan/hishel/compare/0.1.4...0.1.5
Add support for requests library
CacheTransport (#377)CacheTransport by @jamesbraza in #377Full Changelog: https://github.com/karpetrosyan/hishel/compare/0.1.3...0.1.4
Bump redis to 6.0.0 and address async .close() deprecation warning
types-redis from dev dependencies (#336).close() deprecation warning (#336)FileStorage. (#334)path_prefix in S3Storage and AsyncS3Storage. (#342)Add check for fips compliant python.
SyncByteStream instead of ByteStream. (#298)FIx typig extensions nor found.
Add support for Python 3.12 / drop Python 3.8.
<img src="https://wsrv.nl/?url=github.com/mturiansky.png?w=64&h=64&mask=circle&fit=cover&maxage=1w" width="32" height="32" alt="mturiansky" /> <img src="https://wsrv.nl/?url=github.com/Secrus.png?w=64&h=64&mask=circle&fit=cover&maxage=1w" width="32" height="32" alt="Secrus" />
Added a Logging section to the documentation.
Don't raise an exception if the Date header is not present.
Date header is not present. (#273)Ignore file not found error when cleaning up a file storage.
AssertionError on client.close() when use SQLiteStorage. (#269)force_cache. (#271)<img src="https://wsrv.nl/?url=github.com/daudef.png?w=64&h=64&mask=circle&fit=cover&maxage=1w" width="32" height="32" alt="daudef" /> <img src="https://wsrv.nl/?url=github.com/yazmolod.png?w=64&h=64&mask=circle&fit=cover&maxage=1w" width="32" height="32" alt="yazmolod" /> <img src="https://wsrv.nl/?url=github.com/simon-will.png?w=64&h=64&mask=circle&fit=cover&maxage=1w" width="32" height="32" alt="simon-will" />
Fix cache update on revalidation response with content (rfc9111 section 4.3.3)
cache_private property to the controller to support acting as shared cache. (#224)FileStorage by reducing number of syscalls. (#252)remove support for storages (#241)Add revalidated response extension.
revalidated response extension. (#242)Nothing published for this version
Fix RedisStorage when using without ttl.
RedisStorage when using without ttl. (#231)Expose AsyncBaseStorage and BaseStorage.
AsyncBaseStorage and BaseStorage. (#220)Add force_cache property to the controller, allowing RFC9111 rules to be completely disabled.
force_cache property to the controller, allowing RFC9111 rules to be completely disabled. (#204).gitignore to cache directory created by FIleStorage. (#197)stale_* headers from the CacheControl class. (#199)Fix botocore is not installed exception when using any kind of storage.
botocore is not installed exception when using any kind of storage. (#186)Support caching for POST and other HTTP methods.
POST and other HTTP methods. (#183)S3Storage to check staleness of all cache files with set interval. (#182)FileCache could cause a parsing error. (#181)Make FileStorage to check staleness of all cache files with set interval.
FileStorage to check staleness of all cache files with set interval. (#169)typing_extensions from requirements.txt to pyproject.toml. (#161)Fix inner transport and connection pool instances closing.
Allow customization of cache key generation.
Add force_cache extension to enforce the request to be cached, ignoring the HTTP headers.
force_cache extension to enforce the request to be cached, ignoring the HTTP headers. (#117)Update datetime.datetime.utcnow() to datetime.datetime.now(datetime.timezone.utc) since datetime.datetime.utcnow() has been deprecated.
cache_disabled extension to temporarily disable the cache (#109)datetime.datetime.utcnow() to datetime.datetime.now(datetime.timezone.utc) since datetime.datetime.utcnow() has been deprecated. (#111)# Changelog ## 0.0.17 (6/11/2023) - Fix Last-Modified validation.
Last-Modified validation.Move ttl argument to BaseStorage class.
install_cache function. (#95)ttl argument to BaseStorage class. (#94)Nothing published for this version
Replace AsyncResponseStream with AsyncCacheStream.
AsyncResponseStream with AsyncCacheStream. (#86)must-understand response directive support. (#90)Fix connections releasing from the connection pool.
Add metadata into the response extensions.
Add support for request cache-control directives.
cache-control directives. (#42)Add API Reference documentation.
# Changelog ## 0.0.9 (8/1/2023) - Expose Controller API.
Skip redis tests if the server was not found.
Add support for Heuristic Freshness.
Heuristic Freshness. (#11)Controller.cache_heuristically to Controller.allow_heuristics. (#12)Dump original requests with the responses
Vary header validation. (#8)# Changelog ## 0.0.5 (7/29/2023) - Fix httpx response streaming.
Change YamlSerializer name to YAMLSerializer.
YamlSerializer name to YAMLSerializer.Add from_cache response extension.
from_cache response extension.typing_extensions into the requirements.Make backends thread and task safe.
Your coding agent can read these notes before it upgrades. Set up the MCP server →