Files
kaya/packages/kaya-session/README.md
T

1.4 KiB

kaya-session

Session management for the Kaya web framework.

Provides server-side, identity-agnostic HTTP sessions via a session cookie. The session data is accessible from request handlers as ctx.session.

Usage

from kaya.core import KayaApp, HttpContext
from kaya.session import SessionMiddleware, InMemorySessionStore

app = KayaApp()
session_app = SessionMiddleware(app, InMemorySessionStore())

@session_app.GET('/')
async def home(ctx: HttpContext):
    n = ctx.session.get('visits', 0) + 1
    ctx.session['visits'] = n
    await ctx.send_str(200, f'visits: {n}')

Sessions are created lazily: a cookie is only set when the handler modifies the session.

Features

  • Session: dict-like session object with modification tracking
  • SessionStore: abstract store interface
  • InMemorySessionStore: simple in-memory store for development/single-process
  • SessionMiddleware: ASGI middleware managing session cookies and persistence
  • Session ID regeneration (session.regenerate_id()) and invalidation (session.invalidate()) for future authentication layers

Notes

  • This release supports HTTP requests only; WebSocket and RSGI propagation is planned for future releases.
  • InMemorySessionStore does not survive process restarts and is not shared across processes. Production deployments should use a store backed by a shared storage system (planned).