[ANN] httpx 0.9.0 released

httpx 0.9.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), 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.9.0

## Features

### Multiple requests with specific options

You can now pass a third element to the "request element" of an array to
`.request`.

requests = [
  [:post, "https://url/post", { form: { foo: "bar" } }],
  [:post, "https://url/post", { form: { foo: "bar2" } }]
]
HTTPX.request(requests)
# or, if you want to pass options common to all requests
HTTPX.request(requests, max_concurrent_requests: 1)

### HTTPX::Session#build_request

`HTTPX::Session::build_request` is now public API from a session. You can
now build requests before you send them. These request objects are still
considered somewhat "internal", so consider them immutable and **do not
rely on its API**. Just pass them forward.

Note: this API is only available for instantiated session, so there is no
`HTTPX.build_request`.


HTTPX.wrap do |http|
  requests = [
    http.build_request(:post, "https://url/post", { form: { foo: "bar" } }),
    http.build_request(:post, "https://url/post", { form: { foo: "bar2" } })
  ]
  http.request(requests)
  # or, if you want to pass options common to all requests
  http.request(requests, max_concurrent_requests: 1)
end