Plugins for FastAPI framework
Project description
Plugins for FastAPI framework, high performance, easy to learn, fast to code, ready for production
fastapi-plugins
FastAPI framework plugins
- Redis
- Celery
- MQ
- Logging
- Health
- Common
Changes
See release notes
Installation
pip install fastapi-plugins
Plugins
Redis
Supports
- single instance
- sentinel
- fake redis NOT SUPPORTED NOW
Valid variable are
REDIS_TYPE
redis
- single Redis isntancesentinel
- Redis clusterfake
- by using fake Redis
REDIS_URL
- URL to connect to Redis server. Exampleredis://user:password@localhost:6379/2
. Supports protocolsredis://
,rediss://
(redis over TLS) andunix://
.REDIS_HOST
- Redis server host.REDIS_PORT
- Redis server port. Default is6379
.REDIS_PASSWORD
- Redis password for server.REDIS_DB
- Redis db (zero-based number index). Default is0
.REDIS_CONNECTION_TIMEOUT
- Redis connection timeout. Default is2
.REDIS_POOL_MINSIZE
- Minimum number of free connection to create in pool. Default is0
.REDIS_POOL_MAXSIZE
- Maximum number of connection to keep in pool. Default is10
. Must be greater than0
.None
is disallowed.REDIS_SENTINELS
- List or a tuple of Redis sentinel addresses.REDIS_SENTINEL_MASTER
- The name of the master server in a sentinel configuration. Default ismymaster
.
Example
# run with `uvicorn demo_app:app` import typing import aioredis import fastapi import pydantic import fastapi_plugins class AppSettings(OtherSettings, fastapi_plugins.RedisSettings): api_name: str = str(__name__) app = fastapi.FastAPI() config = AppSettings() @app.get("/") async def root_get( cache: aioredis.Redis=fastapi.Depends(fastapi_plugins.depends_redis), ) -> typing.Dict: return dict(ping=await cache.ping()) @app.on_event('startup') async def on_startup() -> None: await fastapi_plugins.redis_plugin.init_app(app, config=config) await fastapi_plugins.redis_plugin.init() @app.on_event('shutdown') async def on_shutdown() -> None: await fastapi_plugins.redis_plugin.terminate()
Example with Docker Compose - Redis
version: '3.7' services: redis: image: redis ports: - "6379:6379" demo_fastapi_plugin: image: demo_fastapi_plugin environment: - REDIS_TYPE=redis - REDIS_HOST=redis - REDIS_PORT=6379 ports: - "8000:8000"
Example with Docker Compose - Redis Sentinel
version: '3.7' services: ... redis-sentinel: ports: - "26379:26379" environment: - ... links: - redis-master - redis-slave demo_fastapi_plugin: image: demo_fastapi_plugin environment: - REDIS_TYPE=sentinel - REDIS_SENTINELS=redis-sentinel:26379 ports: - "8000:8000"
... more already in progress ...
Development
Issues and suggestions are welcome through issues
License
This project is licensed under the terms of the MIT license.
Changes
0.2.0 (2019-12-11)
- Redis: sentinels
0.1.0 (2019-11-20)
- Initial release: simple redis pool client
Project details
Release history Release notifications
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size fastapi_plugins-0.2.0-py3-none-any.whl (6.3 kB) | File type Wheel | Python version py3 | Upload date | Hashes View hashes |
Filename, size fastapi-plugins-0.2.0.tar.gz (6.5 kB) | File type Source | Python version None | Upload date | Hashes View hashes |
Close
Hashes for fastapi_plugins-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eab0f229dcc9edb4947ab7af4c6a2d2cc49e69d262aed1ff1fc3f61750179ca3 |
|
MD5 | aaf851d47d68a63132b4dcac943e6348 |
|
BLAKE2-256 | 09eeafd85401d9c8ad404ec8e21d278e08fb506a3b0176cda4c895e67b46a1df |