{"id":45966,"library":"quart-redis","title":"Quart-Redis","description":"An extension for Quart that integrates Redis, providing support for caching, session storage, and pub/sub. Version 3.0.0 requires Python >=3.11 and Quart >=0.18. Released on 2023-12-01; maintenance cadence is irregular.","status":"active","version":"3.0.0","language":"python","source_language":"en","source_url":"https://github.com/closeio/quart-redis","tags":["quart","redis","async","extension"],"install":[{"cmd":"pip install quart-redis","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Required for async Redis support; hiredis recommended for performance.","package":"redis[hiredis]","optional":true},{"reason":"Required framework; version >=0.18 needed for Quart-Redis 3.x","package":"quart","optional":false}],"imports":[{"wrong":"from quart_redis import QuartRedis","symbol":"Redis","correct":"from quart_redis import Redis"},{"symbol":"get_redis","correct":"from quart_redis import get_redis"},{"symbol":"from_url","correct":"from quart_redis import from_url"}],"quickstart":{"code":"import asyncio\nfrom quart import Quart\nfrom quart_redis import QuartRedis, RedisConfig\n\napp = Quart(__name__)\napp.config['REDIS_URI'] = 'redis://localhost:6379/0'\nredis = QuartRedis(app)\n# or init later: redis.init_app(app)\n\n@app.route('/')\nasync def index():\n    # Use redis.acquire() to get a connection\n    conn = await redis.acquire()\n    await conn.set('key', 'value')\n    val = await conn.get('key')\n    await redis.release(conn)\n    return f'Got: {val}'\n\nif __name__ == '__main__':\n    app.run()","lang":"python","description":"Initialize QuartRedis with the Quart app, then acquire connections from the pool."},"warnings":[{"fix":"Replace aredis usage with redis.asyncio. The QuartRedis interface remains the same but underlying client changed.","message":"In version 3.0.0, the async Redis client changed from aredis to redis-py (redis.asyncio). Code using aredis must be migrated.","severity":"breaking","affected_versions":"<3.0.0"},{"fix":"Set app.config['REDIS_URI'] = 'redis://...' instead of separate host/port/db config.","message":"The 'REDIS_URI' config key is required; previously allowed multiple config keys. In 3.x, only REDIS_URI is used.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Use 'async with redis.connection() as conn:' to auto-release.","message":"Always release connections with redis.release(conn) after acquiring, or use the context manager 'async with redis.connection() as conn:'. Missing release will leak connections.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'-01':31 '-12':30 '0.18':26 '2023':29 '3.0.0':20 '3.11':23 'async':38 'cach':14 'cadenc':33 'extens':5,39 'integr':9 'irregular':35 'mainten':32 'provid':11 'pub/sub':18 'python':22 'quart':2,7,25,36 'quart-redi':1 'redi':3,10,37 'releas':27 'requir':21 'session':15 'storag':16 'support':12 'version':19","created_at":"2026-06-07T12:57:37.144037+00:00","updated_at":"2026-06-07T12:57:37.144037+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":null,"github":null,"docs":null,"changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-08-02","install_tag":null}}