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)
* Compression (gzip, deflate, brotli)
* Streaming Requests
* Authentication (Basic Auth, Digest Auth, AWS Sigv4)
* Expect 100-continue
* Multipart Requests
* HTTP/2 Server Push
* H2C Upgrade
* Automatic follow redirects
* International Domain Names
* Circuit breaker
* Datadog integration
* Faraday integration
* Webmock integration
* Sentry integration
Here are the updates since the last release:
### 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
A new method, `#encoding`, can be called on response bodies. It'll return
the encoding of the response payload.
* 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.
* Removing usage of deprecated `Random::DEFAULT.rand` (using `Random.rand`