httpx 0.13.0 (2020-05-22)


This release switches to httpcore for all the internal networking, which means:

  • We’re using the same codebase for both our sync and async clients.

  • HTTP/2 support is now available with the sync client.

  • We no longer have a urllib3 dependency for our sync client, although there is still an optional URLLib3Transport class.

It also means we’ve had to remove our UDS support, since maintaining that would have meant having to push back our work towards a 1.0 release, which isn’t a trade-off we wanted to make.

We also now have a public “Transport API”, which you can use to implement custom transport implementations against.

This formalises and replaces our previously private “Dispatch API”.


Use httpcore for underlying HTTP transport .

Drop urllib3 requirement . (Pull #804, #967)

Rename pool limit options from soft_limit/hard_limit to max_keepalive/max_connections. (Pull #968) The previous private “Dispatch API” has now been promoted to a public “Transport API”.

When customizing the transport use transport=…. The ASGIDispatch and WSGIDispatch class naming is deprecated in favour of ASGITransport and WSGITransport. (Pull #963)


  • Added URLLib3Transport class for optional urllib3 transport support. (Pull #804, #963)

  • Streaming multipart uploads. (Pull #857)

  • Logging via HTTPCORE_LOG_LEVEL and HTTPX_LOG_LEVEL environment variables and TRACE level logging. (Pull encode/httpcore#79)


  • Performance improvement in brotli decoder. (Pull #906)

  • Proper warning level of deprecation notice in and Response.raw. (Pull #908)

  • Fix support for generator based WSGI apps. (Pull #887)

  • Reuse of connections on HTTP/2 in close concurrency situations. (Pull encode/httpcore#81)

  • Honor HTTP/2 max concurrent streams settings (Pull encode/httpcore#89, encode/httpcore#90)

  • Fix bytes support in multipart uploads. (Pull #974)

  • Improve typing support for files=…. (Pull #976)

Announce for the 1.0 milestone

The 0.13 release series is in great shape, and should be pretty much considered our 1.0 beta candidate.

There’s a few tiny corners that could do with finessing before we push a more formally API-stable 1.0 release.

If you’re interested in keeping an eye on those then take a look over the 1.0 milestone .