Releases: emmett-framework/granian
Releases Β· emmett-framework/granian
Granian 2.0.1
Granian 2.0.0
What's Changed
New features
- Experimental support for free-threaded Python
runtime-blocking-threads
optionblocking-threads-idle-timeout
optionhttp1-header-read-timeout
option- PyPy 3.11 support
- Embeddable server variant in
granian.server.embed
module
Changes
uvloop
dependency is now optional and gated behind the relevant dependency extra- BREAKING renamed
threads
option toruntime-threads
- BREAKING
blocking-threads
option now affects Python interop threads only - BREAKING removed
threading-mode
in favor ofruntime-mode
- previous
workers
option is nowst
- previous
runtime
option is nowmt
- previous
- BREAKING
blocking-threads
is now limited to 1 on ASGI and RSGI protocols rust
task implementation is now available on Python < 3.12 only- Removed PGO builds
- Bump dependencies
Enhancements
- Refactor the Rust task implementation
- Refactor the Python blocking threadpool
- Refactor application protocols failure handling
- Re-export
loops
registry to facilitate customisations - Added warn messages for most common workers/threads misconfigurations
- Review README's workers, threads and backpressure sections
- Added range validations on all the relevant HTTP/2 options
- Added back custom allocators, with
jemalloc
as default option andmimalloc
as gated feature, used by default in the following cases:- MUSL builds
- Windows builds
- Python 3.13t
- Avoid to strip symbols from release builds
Granian 1.7.6
Granian 1.7.5
Patch release
Changes since 1.7.4:
- Fix a bug in Rust task implementation leading to panics under some circumstances
- Refactor GIL acquisition/release in async protocols
- Bump dependencies
Granian 1.7.4
Granian 1.7.3
Patch release
Changes since 1.7.2:
- Fix a regression bug preventing
asyncio.wait_for
to work with Rust task implementation
Granian 1.7.2
Patch release
Changes since 1.7.1:
- Fix a regression bug preventing
PyFutureAwaitable
objects to be correctly GCollected in some circumstances - Fix a regression bug causing the wrong context to be used in some async calls
- Prevent async callbacks tasks to be GCollected before completion with pure-python asyncio task implementation
Granian 1.7.1
Patch release
Changes since 1.7.0:
- Add a pure-asyncio task implementation to prevent type checks issues in libs like
anyio
Granian 1.7.0
What's Changed
New features
- Support for
logging.NOTSET
level (#439 by @monosans) - Workers kill timeout option (#435 by @hendrikmuhs)
Changes
- BREAKING removed loop optimizations option and relevant code
- Bump PyO3 to 0.23
- Drop Python 3.8 support
- Remove custom allocators