66 lines
1.8 KiB
Markdown
66 lines
1.8 KiB
Markdown
# kaya
|
|
|
|
A lightweight ASGI web framework with method-aware routing, path matching, and recursive wildcard support.
|
|
|
|
## Packages
|
|
|
|
This repository is a monorepo for the Kaya framework. The code is split into independent packages under `packages/`:
|
|
|
|
- **kaya-core** — core routing, HTTP/WS abstractions, and ASGI adapter (`packages/kaya-core/`)
|
|
- **kaya-rsgi** — RSGI/Granian integration (`packages/kaya-rsgi/`)
|
|
- **kaya-session** — server-side HTTP session management (`packages/kaya-session/`)
|
|
- **kaya-session-redis** — Redis-backed session storage (`packages/kaya-session-redis/`)
|
|
- **kaya-oidc** — OpenID Connect authentication (`packages/kaya-oidc/`)
|
|
|
|
Additional `kaya-*` packages can be added as new directories under `packages/`.
|
|
|
|
## Build & run locally
|
|
|
|
Install dev dependencies:
|
|
|
|
```bash
|
|
pip install --index-url https://gitea.woggioni.net/api/packages/woggioni/pypi/simple --extra-index-url https://pypi.org/simple -r requirements-dev.txt
|
|
```
|
|
|
|
Install the packages in development mode:
|
|
|
|
```bash
|
|
pip install -e packages/kaya-core -e packages/kaya-rsgi -e packages/kaya-session -e packages/kaya-session-redis -e packages/kaya-oidc
|
|
```
|
|
|
|
Run the example:
|
|
|
|
```bash
|
|
python example/hello.py
|
|
```
|
|
|
|
## Tests
|
|
|
|
```bash
|
|
python -m unittest discover -s packages/kaya-core/tests
|
|
python -m unittest discover -s packages/kaya-rsgi/tests
|
|
python -m unittest discover -s packages/kaya-session/tests
|
|
python -m unittest discover -s packages/kaya-session-redis/tests
|
|
python -m unittest discover -s packages/kaya-oidc/tests
|
|
```
|
|
|
|
## Static analysis
|
|
|
|
```bash
|
|
mypy -p kaya.core
|
|
mypy -p kaya.rsgi
|
|
mypy -p kaya.session
|
|
mypy -p kaya.session_redis
|
|
mypy -p kaya.oidc
|
|
```
|
|
|
|
## Building packages
|
|
|
|
```bash
|
|
python -m build packages/kaya-core
|
|
python -m build packages/kaya-rsgi
|
|
python -m build packages/kaya-session
|
|
python -m build packages/kaya-session-redis
|
|
python -m build packages/kaya-oidc
|
|
```
|