Skip to main content

aioredis_fastapi is an asynchronous redis based session backend for FastAPI powered applications.

Project description

License Banner

aioredis_fastapi is an asynchronous redis based session backend for FastAPI powered applications.

🚸This repository is under active development, and it is not production-ready.🚸

🛠️ Requirements

aioredis_fastapi requires Python 3.9 or above.

To install Python 3.9, I recommend using pyenv. You can refer to this section of the readme file on how to install poetry and pyenv into your linux machine.

🚨 Installation

With pip:

python3.9 -m pip install aioredis_fastapi

or by checking out the repo and installing it with poetry:

git clone https://github.com/wiseaidev/aioredis_fastapi.git && cd aioredis_fastapi && poetry install

🚸 Usage

from typing import Any
from fastapi import Depends, FastAPI, Request, Response
from aioredis_fastapi import (
    get_session_storage,
    get_session,
    get_session_id,
    set_session,
    del_session,
    SessionStorage,
)

app = FastAPI(title=__name__)


@app.post("/set-session")
async def _set_session(
    request: Request,
    response: Response,
    session_storage: SessionStorage = Depends(get_session_storage),
):
    session_data = await request.json()
    await set_session(response, session_data, session_storage)


@app.get("/get-session")
async def _get_session(session: Any = Depends(get_session)):
    return session


@app.post("/del-session")
async def _delete_session(
    session_id: str = Depends(get_session_id),
    session_storage: SessionStorage = Depends(get_session_storage),
):
    await del_session(session_id, session_storage)
    return None

🚸 Custom Config

from aioredis_fastapi.config import settings
from datetime import timedelta

settings(
   redis_url="redis://localhost:6379",
   session_id_name="session-id",
   session_id_generator=lambda: str(random.randint(1000, 9999)),
   expire_time: timedelta(days=1)
)

🎉 Credits

The following projects were used to build and test aioredis_fastapi.

👋 Contribute

If you are looking for a way to contribute to the project, please refer to the Guideline.

📝 License

This program and the accompanying materials are made available under the terms and conditions of the GNU GENERAL PUBLIC LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aioredis_fastapi-0.0.1.tar.gz (17.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aioredis_fastapi-0.0.1-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

Details for the file aioredis_fastapi-0.0.1.tar.gz.

File metadata

  • Download URL: aioredis_fastapi-0.0.1.tar.gz
  • Upload date:
  • Size: 17.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.9.10 Linux/5.15.0-43-generic

File hashes

Hashes for aioredis_fastapi-0.0.1.tar.gz
Algorithm Hash digest
SHA256 ec3bf1aa2d6b4b2e7dde69ff97bd6197fd600b6003b9f42308b70c98ad4d3004
MD5 6ed4f19108350edba9e87a7d986d5cc0
BLAKE2b-256 9fbeb063294d66776c60360c7831b5141ec5d9b4f59b0fad63973d2841f3de80

See more details on using hashes here.

File details

Details for the file aioredis_fastapi-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: aioredis_fastapi-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 31.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.9.10 Linux/5.15.0-43-generic

File hashes

Hashes for aioredis_fastapi-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c992aa0d616c970acc4ad17bcb0857a7d7e79ff4e5559cea983749c8705b7e91
MD5 b92a3a3a55923214a82ef9c6cb6855ea
BLAKE2b-256 f53e1f93f949e6647b858bffe053dbcd8aa976f7e8399fb4f41136e77adb85a1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page