Skip to content

Releases: emmett-framework/granian

Granian 2.7.3

07 Apr 11:05
95b0af8

Choose a tag to compare

Patch release

Changes since 2.7.2:

  • Fix a bug in ASGI protocol preventing to receive websocket disconnection messages before accept
  • Bump dependencies

Granian 2.7.2

24 Feb 23:04
45d9c75

Choose a tag to compare

Patch release

Changes since 2.7.1:

  • Review ASGI websockets' rejection flow
    • This should fix an hang issue with Django channels
  • Fix ASGI websocket scope suprotocols split (#817 by @JaeHyuckSa)
  • Fix Content-Type header in metrics endpoint (#808 by @IngmarStein)
  • Bump dependencies

Granian 2.7.1

08 Feb 20:03
1a5a8c3

Choose a tag to compare

Patch release

Changes since 2.7.0:

  • Fix websockets' handles cleanup on shutdown
    • This should fix an occasional runtime thread panic with the message
      Cannot drop pointer into Python heap without the thread being attached
  • Fix a bug in the ASGI protocol preventing apps to receive the websocket.disconnect event after server-initiated close (#801 by @JaeHyuckSa)
    • This should fix some long-standing issues with Django channels
  • Review some lock holding strategy in PyFutureAwaitable callback dispatch (#802 by @ColemanDunn)
  • Bump dependencies

Granian 2.7.0

02 Feb 11:40
0de704b

Choose a tag to compare

What's Changed

New features

  • Add prometheus metrics export (based on @butlerx preliminary work)
  • Add support for ASGI websocket denial response extension (#771 by @JaeHyuckSa)
  • Add static files rewrite support for directory listings (#784 by @tobiasge)
  • Add support for multiple static paths

Changes

  • Lowered --blocking-threads-idle-timeout minimum accepted value to 5 seconds
  • Bump dependencies

Enhancements

  • Refactor blocking thread-pool resize strategy
  • Review auto runtime mode option

Fixes

  • Bump minimum version of click dependency

Granian 2.6.1

07 Jan 11:14
0fbc4b9

Choose a tag to compare

Patch release

Changes since 2.6.0:

Granian 2.6.0

16 Nov 16:07
30a0278

Choose a tag to compare

What's Changed

New features

  • Add winloop support (#682 by @jpagh)
  • Allow to set UDS file permissions (#697 by @apapsch)
  • Add TLSv1.2 support (#665 by @dpetzold)
  • Bump RSGI spec to 1.6
    • Add response_file_range protocol interface (#159 by @myers)
  • Add --rss-samples option

Changes

  • Drop Python 3.9 support
  • Drop PyPy 3.9 and 3.10 support
  • Promote Python 3.14 support to stable
  • Promote UDS support to stable
  • Avoid to automatically set workers' kill timeout with reloader enabled (#696 by @Sube-py)
  • Lowered --rss-sample-interval minimum accepted value to 1 second
  • Bump PyO3 to 0.27
  • Bump mimalloc to v3
  • Bump dependencies

Enhancements

  • Refactored workers Rust traits
  • Add auto runtime mode option
  • Support non-ASCII file names in static files
  • Review workers' signals handling on Windows and async protocols

Fixes

  • Avoid panics on exceeding ASGI messages
  • Fix socket descriptor destruction on embedded server

Granian 2.5.7

05 Nov 12:23
bc1744d

Choose a tag to compare

Patch release

Changes since 2.5.6:

  • Fix a Python 3.9 compatibility issue with utils.proxies module

Granian 2.5.6

29 Oct 18:55
3a2fd37

Choose a tag to compare

Patch release

Changes since 2.5.5:

  • Fix a bug on WSGI protocol causing wrong PATH_INFO values in environ when --url-path-prefix used

Granian 2.5.5

07 Oct 17:39
ead1b56

Choose a tag to compare

Patch release

Changes since 2.5.4:

  • Fallback to spawn multiprocessing start method when the default is not compatible
    • This fixes a bug preventing Granian to start on Unix systems running Python 3.14 with forkserver spawn method

Granian 2.5.4

18 Sep 12:35
acfd66d

Choose a tag to compare

Patch release

Changes since 2.5.3:

  • Fix query string encoding on WSGI protocol to only allow ISO-8859-1 representable unicode characters