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

httpx 0.22.0 has been released.

HTTPX.get("https://gitlab.com/honeyryderchuck/httpx
<https://gitlab.com/honeyryderchuck/httpx>")

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
* GRPC
* 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
sequentially.

`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
meanwhile.
* native resolver: fix for nameserver switch not happening in case of DNS
timeout.
  * when more than a nameserver was advertised by the system.

## Chore

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