[ANN] httpx 0.24.0 released
httpx 0.24.0 has been released.
HTTPX.get("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.24.0 Features:oauth
plugin
The :oauth
plugin manages the handling of a given OAuth session, in that it ships with convenience methods to generate a new access token, which it then injects in all requests.
More info under https://honeyryderchuck.gitlab.io/httpx/wiki/OAuth
session callbacksHTTP request/response lifecycle events have now the ability of being intercepted via public API callback methods:
ruby
HTTPX.on_request_completed do |request|
puts "request to #{request.uri} sent"
end.get(...)
More info under https://honeyryderchuck.gitlab.io/httpx/wiki/Events to know which events and callback methods are supported.
:circuit_breaker
plugin on_circuit_open
callback
A callback has been introduced for the :circuit_breaker
plugin, which is triggered when a circuit is opened.
ruby
http = HTTPX.plugin(:circuit_breaker).on_circuit_open do |req|
puts "circuit opened for #{req.uri}"
end
http.get(...)
Several :response_cache
features have been improved:
-
:response_cache
plugin: response cache store has been made thread-safe. - cached response sharing across threads is made safer, as stringio/tempfile instances are copied instead of shared (without copying the underling string/file).
- stale cached responses are eliminate on cache store lookup/store operations.
- already closed responses are evicted from the cache store.
- fallback for lack of compatible response “date” header has been fixed to return a
Time
object.
- Ability to recover from errors happening during response chunk processing (required for overriding behaviour and response chunk callbacks); error bubbling up will result in the connection being closed.
- Happy eyeballs support for multi-homed early-resolved domain names (such as
localhost
under/etc/hosts
) was broken, as it would try the first given IP; so, if given::1
and connection would fail, it wouldn’t try127.0.0.1
, which would have succeeded. -
:digest_authentication
plugin was removing the “algorithm” header on-sess
declared algorithms, which is required for HTTP digest auth negotiation.
- fix
Response::Body#read
which rewinds on every call.
- native resolver: fix missing exception variable in the DNS error code path.
- native resolver: fixed short DNS packet handling when using TCP.
- fix missing variable on code path in the native resolver.
- fixed regression causing dns candidate names not being tried after first one fails.
Comments
Appears to be at https://gitlab.com/honeyryderchuck/httpx now :-)
Post a comment