Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
0.11.1 Fixed - Add await to async semaphore release() coroutine - Drop incorrect curio classifier 0.11.0 The Transport API with 0.11.0 has a couple of significant changes. Firstly we've moved changed the request interface in order to allow extensions, which will later enable us to support features such as trailing headers, HTTP/2 server push, and CONNECT/Upgrade connections. The interface changes from: ```python def request(method, url, headers, stream, timeout): return (http_version, status_code, reason, headers, stream) ``` To instead including an optional dictionary of extensions on the request and response: ```python def request(method, url, headers, stream, ext): return (status_code, headers, stream, ext) ``` Having an open-ended extensions point will allow us to add later support for various optional features, that wouldn't otherwise be supported without these API changes. In particular: * Trailing headers support. * HTTP/2 Server Push * sendfile. * Exposing raw connection on CONNECT, Upgrade, HTTP/2 bi-di streaming. * Exposing debug information out of the API, including template name, template context. Currently extensions are limited to: * request: `timeout` - Optional. Timeout dictionary. * response: `http_version` - Optional. Include the HTTP version used on the response. * response: `reason` - Optional. Include the reason phrase used on the response. Only valid with HTTP/1.*. See encode/httpx#1274 (comment) for the history behind this. Secondly, the async version of `request` is now namespaced as `arequest`. This allows concrete transports to support both sync and async implementations on the same class. Added - Add curio support. - Add anyio support, with `backend="anyio"`. Changed - Update the Transport API to use 'ext' for optional extensions. - Update the Transport API to use `.request` and `.arequest` so implementations can support both sync and async. 0.10.2 Added - Added Unix Domain Socket support. Fixed - Always include the port on proxy CONNECT requests. - Fix `max_keepalive_connections` configuration. - Fixes behaviour in HTTP/1.1 where server disconnects can be used to signal the end of the response body. 0.10.1 - Include `max_keepalive_connections` on `AsyncHTTPProxy`/`SyncHTTPProxy` classes. 0.10.0 The most notable change in the 0.10.0 release is that HTTP/2 support is now fully optional. Use either `pip install httpcore` for HTTP/1.1 support only, or `pip install httpcore[http2]` for HTTP/1.1 and HTTP/2 support. Added - HTTP/2 support becomes optional. - Add `local_address=...` support. - Add `PlainByteStream`, `IteratorByteStream`, `AsyncIteratorByteStream`. The `AsyncByteSteam` and `SyncByteStream` classes are now pure interface classes. - Add `LocalProtocolError`, `RemoteProtocolError` exceptions. - Add `UnsupportedProtocol` exception. - Add `.get_connection_info()` method. - Add better TRACE logs. Changed - `max_keepalive` is deprecated in favour of `max_keepalive_connections`. Fixed - Improve handling of server disconnects.
- Loading branch information