| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| Granian 2.8.0 source code.tar.gz | 2026-08-03 | 194.3 kB | |
| Granian 2.8.0 source code.zip | 2026-08-03 | 250.3 kB | |
| README.md | 2026-08-03 | 1.1 kB | |
| Totals: 3 Items | 445.8 kB | 3 | |
What's Changed
New features
- Add
headeratom to access log format (#829 by @nitrag)
Changes
- BREAKING prioritize request's scope over OS env when building WSGI environ dict (#879 by @Barsoomx)
- This means conflicting keys won't override WSGI request data anymore
- BREAKING TCP handshake errors are now logged under
debugseverity - Add Python 3.15 support
- Drop free-threaded Python 3.13 support
- Bump PyO3 to 0.29 (#820 by @tobiasge)
- Bump dependencies
Enhancements
- BREAKING Refactor socket sharing on Linux
- Granian on Linux now requires kernel >= 5.14 and
net.ipv4.tcp_migrate_reqsysctl option enabled when using multiple workers and respawn features - BREAKING Implement (non-configurable) backpressure over streamed/iterable responses in ASGI and WSGI protocols
- This trades a bit of throughput (mostly unnoticeable) for lower memory usage
- Refactor workers main loop and shutdown process
Fixes
- Fix several bugs on shutdown process (thanks @Malkiz223)
- Fix a shared socket bug on free-threaded Python causing crashes on workers respawn