为ASGI应用程序提供服务器端HTTP缓存,灵感来源于Django的缓存框架
项目描述
asgi-caches
asgi-caches
提供中间件和实用程序,用于向ASGI应用程序添加服务器端HTTP缓存。它由 async-caches
驱动,并受到Django缓存框架的启发。
文档可在: https://asgi-caches.florimond.dev
注意:此项目处于“alpha”状态。一些功能仍需实现,并且您应该预期在次要版本之间会有破坏性API更改。
功能
- 与任何ASGI应用程序兼容(例如,Starlette,FastAPI,Quart等)。
- 支持全局或端点级别的缓存。
- 能够对缓存行为进行微调(TTL,缓存控制),直到端点级别。
- 通过与
async-caches
的松散耦合实现干净且明确的API。 - 完全类型注解。
- 100%测试覆盖率。
安装
pip install "asgi-caches==0.*"
快速入门
from asgi_caches.middleware import CacheMiddleware
cache = Cache("locmem://null")
async def app(scope, receive, send):
assert scope["type"] == "http"
headers = [(b"content-type", "text/plain")]
await send({"type": "http.response.start", "status": 200, "headers": headers})
await send({"type": "http.response.body", "body": b"Hello, world!"})
app = CacheMiddleware(app, cache=cache)
此示例
- 设置内存缓存(具体内容请参阅 async-caches 文档)。
- 设置应用程序(在这种情况下,一个原始的ASGI 'Hello, world!' 应用程序)。
- 在整个应用程序上应用缓存。
欲了解更多信息,请参阅 文档。
致谢
应归功于Django的开发者和维护者,因为API和实现的大部分灵感直接来自 Django缓存框架。
许可证
MIT
变更日志
此项目中所有值得注意的更改都将记录在此文件中。
格式基于 Keep a Changelog。
0.3.1 - 2019-11-23
变更
- 禁止多次应用缓存中间件。(Pull #21)
0.3.0 - 2019-11-12
新增
- 添加
@cache_control()
装饰器和其底层的中间件。(Pull #19)
0.2.0 - 2019-11-12
新增
- 添加
@cached()
装饰器。(Pull #15)
0.1.1 - 2019-11-12
新增
- 添加
DEBUG
和TRACE
日志。(Pull #14)
0.1.0 - 2019-11-12
新增
- 添加
CacheMiddleware
。(Pull #8) - 当请求没有cookie时,防止缓存包含cookie的响应。(Pull #9)
- 如果缓存TTL为零,则防止缓存响应。(Pull #10)
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
asgi-caches-0.3.1.tar.gz (11.7 kB 查看哈希值)
构建分布
asgi_caches-0.3.1-py3-none-any.whl (12.4 kB 查看哈希值)
关闭
asgi-caches-0.3.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b62690a077dfa23ace2cf6d177b717adb924d2aa448406744eca661e5f10fffc |
|
MD5 | 9d545fd3aca1999c8a1aad009b139eb3 |
|
BLAKE2b-256 | b7deb7591777802d20d77c5ac592d208b139c597188a57ea5b205c71d0372d42 |
关闭
asgi_caches-0.3.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a2e8cbdb7dc49e6fc2ff14aefe0ef9e0808ac624d960586cd9bf974efee3e55f |
|
MD5 | 957b169d61f71b23027d2c4cfb18e9a4 |
|
BLAKE2b-256 | 1750f6c4cb156812d18bf2ee24f4ccc9cc9a98df8cdba174de30035f8a6c955b |