Skip to content

Releases: encode/starlette

Version 0.15.0

23 Jun 08:34
119c427
Compare
Choose a tag to compare

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 GZipMiddleware is 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.
  • RedirectResponse now uses quote instead of quote_plus encoding for the Location header 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 BaseHTTPMiddleware when handling large responses - #1012 fixed via #1157

Deprecated/removed

  • Built-in GraphQL support via the GraphQLApp class has been deprecated and will be removed in a future release. Please see #619. GraphQL is not supported on Python 3.10.
  • The executor parameter to GraphQLApp was removed. Use executor_class instead.
  • The workers parameter to WSGIMiddleware was removed. This hasn't had any effect since Starlette v0.6.3.

Version 0.14.2

02 Feb 20:12
ea19904
Compare
Choose a tag to compare

Fixed

  • Fixed ServerErrorMiddleware compatibility with Python 3.9.1/3.8.7 when debug mode is enabled - #1132.
  • Fixed unclosed socket ResourceWarnings when using the TestClient with WebSocket endpoints - #1132.
  • Improved detection of async endpoints wrapped in functools.partial on Python 3.8+ - #1106.

Version 0.14.1

09 Nov 15:17
7144374
Compare
Choose a tag to compare

Removed

  • UJSONResponse was removed (this change was intended to be included in 0.14.0). Please see the documentation for how to implement responses using custom JSON serialization - #1074.

Version 0.14.0

08 Nov 19:53
8bfc2a3
Compare
Choose a tag to compare

Added

  • Starlette now officially supports Python3.9.
  • In StreamingResponse, allow custom async iterator such as objects from classes implementing __aiter__.
  • Allow usage of functools.partial async handlers in Python versions 3.6 and 3.7.
  • Add 418 I'm A Teapot status code.

Changed

  • Create tasks from handler coroutines before sending them to asyncio.wait.
  • Use format_exception instead of format_tb in ServerErrorMiddleware's debug responses.
  • Be more lenient with handler arguments when using the requires decorator.

Version 0.13.8

14 Aug 03:52
31ad4e5
Compare
Choose a tag to compare
  • Revert Queue(maxsize=1) fix for BaseHTTPMiddleware middleware classes and streaming responses.

  • The StaticFiles constructor now allows pathlib.Path in addition to strings for its directory argument.

Version 0.13.7

05 Aug 15:09
518da5e
Compare
Choose a tag to compare
  • Fix high memory usage when using BaseHTTPMiddleware middleware classes and streaming responses.

Version 0.13.6

20 Jul 12:13
60d2259
Compare
Choose a tag to compare
  • Fix 404 errors with StaticFiles.

Version 0.13.5

17 Jul 12:41
6aa7d9e
Compare
Choose a tag to compare

0.13.5

  • Add support for Starlette(lifespan=...) functions.
  • More robust path-traversal check in StaticFiles app.
  • Fix WSGI PATH_INFO encoding.
  • RedirectResponse now accepts optional background parameter
  • Allow path routes to contain regex meta characters
  • Treat ASGI HTTP 'body' as an optional key.
  • Don't use thread pooling for writing to in-memory upload files.

Version 0.13.4

30 Apr 08:49
2fa1307
Compare
Choose a tag to compare
  • Add UUID convertor. #903
  • More lenient cookie parsing. #900