[ANN] httpx 0.8.2 released

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)

And also:

* Compression (gzip, deflate, brotli)
* Authentication (Basic Auth, Digest Auth)
* Expect 100-continue
* Multipart Requests
* Cookies
* HTTP/2 Server Push
* H2C Upgrade
* Automatic follow redirects

These are the announcements since the last update:

# 0.8.0

## Features

* `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;

## Improvements

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

## Bugfixes

* 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;

## Tests

* Code coverage improved to 91%;

# 0.8.1

## Bugfixes

* 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;

# 0.8.2

## Features

* `: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.