[ruby-talk:444090] [ANN] httpx 0.22.0 released

httpx 0.22.0 has been released.


HTTPX is an HTTP client library for the Ruby programming language.

Among its features, it supports:

* HTTP/2 and HTTP/1.x protocol versions
* Concurrent requests by default
* Simple and chainable API
* Proxy Support (HTTP(S), CONNECT tunnel, Socks4/4a/5)
* Simple Timeout System
* Lightweight by default (require what you need)

And also:

* Compression (gzip, deflate, brotli)
* Streaming Requests
* Authentication (Basic Auth, Digest Auth, AWS Sigv4)
* Expect 100-continue
* Multipart Requests
* Cookies
* HTTP/2 Server Push
* H2C Upgrade
* Automatic follow redirects
* International Domain Names
* Circuit breaker
* WebDAV
* Datadog integration
* Faraday integration
* Webmock integration
* Sentry integration

Here are the updates since the last release:

# 0.22.0

## Improvements

### Happy Eyeballs v2 finalized

Until now, httpx was issuing concurrent DNS requests, but it'd only start
connecting to the first, and then on the following by the right order, but

`httpx` will now establish connections concurrently to both IPv6 and IPv4
addresses of a given domain; the first one to succeed terminates the other.
Successful connection means completion of both TCP and TLS (when
applicable) handshakes.

### HTTPX::Response::Body#encoding

A new method, `#encoding`, can be called on response bodies. It'll return
the encoding of the response payload.

# 0.21.1

## Bugfixes

* fix: protecting tcp connect phase against low-level syscall errors
  * such as network unreachable, which can happen if connectivity is lost
* native resolver: fix for nameserver switch not happening in case of DNS
  * when more than a nameserver was advertised by the system.

## Chore

* Removing usage of deprecated `Random::DEFAULT.rand` (using `Random.rand`