Metadata-Version: 2.1
Name: Sesh
Version: 0.7.0
Summary: Sesh is a session management library for FastAPI
Author-email: Brian Farrell <brian.farrell@me.com>
License: AGPLv3
Project-URL: repository, https://gitlab.com/brianfarrell/sesh/
Project-URL: documentation, https://brianfarrell.gitlab.io/sesh/
Keywords: session,redis
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: FastAPI
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Typing :: Typed
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aenum>=3.1.15
Requires-Dist: fastapi>=0.111.1
Requires-Dist: itsdangerous>=2.2.0
Requires-Dist: loguru>=0.7.2
Requires-Dist: pydantic[email]>=2.8.2
Requires-Dist: pydantic-settings>=2.3.4
Requires-Dist: redis[hiredis]>=5.0.7
Provides-Extra: dev
Requires-Dist: twine>=5.1.1; extra == "dev"
Provides-Extra: doc
Requires-Dist: mkdocs-macros-plugin; extra == "doc"
Requires-Dist: mkdocs-material[imaging,recommended]; extra == "doc"
Requires-Dist: mkdocstrings[python]; extra == "doc"
Requires-Dist: mike; extra == "doc"
Provides-Extra: example
Requires-Dist: httpx==0.27.0; extra == "example"
Requires-Dist: uvicorn[standard]>=0.30.1; extra == "example"
Provides-Extra: test
Requires-Dist: alt-pytest-asyncio>=0.8.1; extra == "test"
Requires-Dist: asgi-lifespan>=2.1.0; extra == "test"
Requires-Dist: coverage[toml]>=7.6.0; extra == "test"
Requires-Dist: dirty-equals>=0.7.1.post0; extra == "test"
Requires-Dist: httpx==0.27.0; extra == "test"
Requires-Dist: mypy>=1.11.0; extra == "test"
Requires-Dist: pytest>=8.2.2; extra == "test"
Requires-Dist: pytest-cov>=5.0.0; extra == "test"
Requires-Dist: pytest-env>=1.1.3; extra == "test"
Requires-Dist: uvicorn[standard]>=0.30.1; extra == "test"

<p align="center" style="margin: 0 0 0px">
  <img width="281" height="237" src="https://trove.fm/images/sesh_logo_medium.png" alt='Sesh'>
</p>

<div align="center">
    <h1 align="center" style="font-size: 3rem; margin: -15px 0"></h1>
    <p align="center" style="font-size: 1.2rem; margin: 20px 0"><em>Session Management for FastAPI</em></p>
    <img src="https://gitlab.com/brianfarrell/sesh/badges/main/pipeline.svg?key_text=Test%20Suite">
    <img src="https://gitlab.com/brianfarrell/sesh/badges/main/coverage.svg?key_text=Coverage">
    <img src="https://gitlab.com/brianfarrell/sesh/-/badges/release.svg?key_text=Release">
</div>

## Features

- Secure your FastAPI app with cookies rather than tokens
- Use dependency injection to protect routes and manage state data
- Extensible API supports multiple, custom cookies to store state or a keyed-reference to state
- Redis is the first backend to be supported, but several others are in the works
- Use multiple backends simultaneously
- Pydantic models and static typing are used throughout to verify data and ease development
- Abstract Base Classes for Session and SessionStore to ease development of custom tools

## Links

Framework Documentation: [https://brianfarrell.gitlab.io/sesh/](https://brianfarrell.gitlab.io/sesh/)

License: [https://www.gnu.org/licenses/agpl.html](https://www.gnu.org/licenses/agpl.html)

PyPi Release: [https://pypi.org/project/sesh/](https://pypi.org/project/sesh/)
