chore: replace hypercorn with granian (Rust ASGI server)

Granian is ~3-5x faster than Hypercorn in benchmarks. No code changes
needed — Quart is standard ASGI so any ASGI server works.

- web/pyproject.toml: hypercorn → granian>=1.6.0 (installed: 2.7.1)
- Dockerfile CMD: hypercorn → granian --interface asgi
- core.py setup_logging(): silence granian loggers instead of hypercorn's

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Deeman
2026-02-24 21:26:19 +01:00
parent aa7a8bad99
commit fda7da7d59
4 changed files with 85 additions and 7 deletions

View File

@@ -10,7 +10,7 @@ dependencies = [
"python-dotenv>=1.0.0",
"itsdangerous>=2.1.0",
"jinja2>=3.1.0",
"hypercorn>=0.17.0",
"granian>=1.6.0",
"paddle-python-sdk>=1.13.0",
"mistune>=3.0.0",
"resend>=2.22.0",

View File

@@ -104,9 +104,8 @@ def setup_logging() -> None:
format="%(asctime)s %(levelname)-8s %(name)s: %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
logging.getLogger("hypercorn").setLevel(logging.WARNING)
logging.getLogger("hypercorn.error").setLevel(logging.WARNING)
logging.getLogger("hypercorn.access").setLevel(logging.WARNING)
logging.getLogger("granian").setLevel(logging.WARNING)
logging.getLogger("granian.access").setLevel(logging.WARNING)
logging.getLogger("asyncio").setLevel(logging.WARNING)
logging.getLogger("aiosqlite").setLevel(logging.WARNING)