github emmett-framework/granian v2.8.0
Granian 2.8.0

4 hours ago

What's Changed

New features

  • Add header atom 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 debug severity
  • 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_req sysctl 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

Don't miss a new granian release

NewReleases is sending notifications on new releases.