httpx 0.8.2 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), Socks4/4a/5)
* Simple Timeout System
* Lightweight by default (require what you need)
* Compression (gzip, deflate, brotli)
* Authentication (Basic Auth, Digest Auth)
* Expect 100-continue
* Multipart Requests
* HTTP/2 Server Push
* H2C Upgrade
* Automatic follow redirects
These are the announcements since the last update:
* `keep_alive_timeout`: for persistent connections, the keep alive timeout
will set the connection to be closed if not reused for a request **after**
the last received response;
* using `max_requests` for HTTP/1 pipelining as well;
* `retries` plugin now works with plain HTTP responses (not just error
* reduced the number of string allocations from log labels;
* performance: a lot of improvements were made to optimize the "waiting for
IO events" phase, which dramatically reduced the CPU usage and make the
performance of the library more on-par with other ruby HTTP gems for the
1-shot request scenario.
* fixed `HTTPX::Response#copy_to`;
* fixed `compression` plugin not properly compressing request bodies using
* fixed `compression` plugin not handling `content-encoding: identity`
* do not overwrite user-defined `max_requests`on HTTP2 connection handshake;
* `retries` plugin: connection was blocking when a request with body was
* `alt-svc: clear` response header was causing the process to hang;
* Code coverage improved to 91%;
* fixing HTTP/2 handshake IO interests calculation;
* fixed the double ctrl+f issue when terminating an ongoing HTTP/2 request;
* fixed connection comparison when passing headers;
* `:expect` plugin now supports a new option, `:expect_threshold_size`,
meaning: the byte size threshold below which no `expect` header will be
* `:compression` plugin now supports a new option,
`:compression_threshold_size`, meaning: the bytesize threshold below which
request payload won't be compressed before being sent.
* for HTTP/2 connections, when `keep_alive_timeout` expires, a `PING` frame
is used to check connection availability; if successful, the connection
will be reused.
sent with requests with payload.