Installation
Lauren targets Python 3.11 or newer and ships with py.typed, so static analyzers like mypy and pyright pick up the full public API immediately.
Install from PyPI
bash
pip install laurenFor Pydantic-validated request bodies (Json[Model], Form[Model], response models in OpenAPI), install Pydantic v2:
bash
pip install pydanticInstall from source
bash
git clone https://github.com/your-org/lauren.git
cd lauren
pip install -e .
pip install pytest pytest-asyncio # to run the test suiteRun the tests
Lauren ships with 252+ unit tests covering routing, DI, extractors, modules, lifecycle, middleware, guards, exception handlers, OpenAPI, the strict inheritance guard, auto-serialization, structured logging, signal handling, WebSockets, Server-Sent Events, and the Socket.IO adapter:
bash
python -m pytest tests/Pick an ASGI server
Lauren returns a standard ASGI 3 callable from LaurenFactory.create(...). Any compliant server works:
bash
pip install "uvicorn[standard]"
uvicorn myapp:app --host 0.0.0.0 --port 8000Recommended editor setup
| Tool | Why it helps |
|---|---|
| mypy or pyright | Lauren's py.typed marker means type checkers see every extractor, scope, and DI signature. Catches misuse statically. |
| Ruff | The framework's style is Black-compatible (88-char soft limit, 120 hard). Ruff's defaults align cleanly. |
uvicorn --reload | Hot reload during development; Lauren's startup is fast enough that reloads feel instant on most graphs. |
You're ready. Head to the Quickstart to build your first app.