Version 0.15.0
0.15.0
This release includes major changes to the low-level asynchronous parts of Starlette. As a result, Starlette now depends on AnyIO and some minor API changes have occurred. Another significant change with this release is the deprecation of built-in GraphQL support.
Added
- Starlette now supports Trio as an async runtime via AnyIO - #1157.
TestClient.websocket_connect()now must be used as a context manager.- Initial support for Python 3.10 - #1201.
- The compression level used in
GZipMiddlewareis now adjustable - #1128.
Fixed
- Several fixes to
CORSMiddleware. See #1111, #1112, #1113, #1199. - Improved exception messages in the case of duplicated path parameter names - #1177.
RedirectResponsenow usesquoteinstead ofquote_plusencoding for theLocationheader to better match the behaviour in other frameworks such as Django - #1164.- Exception causes are now preserved in more cases - #1158.
- Session cookies now use the ASGI root path in the case of mounted applications - #1147.
- Fixed a cache invalidation bug when static files were deleted in certain circumstances - #1023.
- Improved memory usage of
BaseHTTPMiddlewarewhen handling large responses - #1012 fixed via #1157
Deprecated/removed
- Built-in GraphQL support via the
GraphQLAppclass has been deprecated and will be removed in a future release. Please see #619. GraphQL is not supported on Python 3.10. - The
executorparameter toGraphQLAppwas removed. Useexecutor_classinstead. - The
workersparameter toWSGIMiddlewarewas removed. This hasn't had any effect since Starlette v0.6.3.