RubyFlow The Ruby and Rails community linklog

×

The Ruby and Rails community linklog

Made a library? Written a blog post? Found a useful tutorial? Share it with the Ruby community here or just enjoy what everyone else has found!

[ANN] httpx 0.24.6 released

httpx 0.24.6 has been released.

NOTE: If nothing significant happens, this will be the last release before v1 is released (which should happen during next week).

https://gitlab.com/honeyryderchuck/httpx

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.6 Bugfixes
  • fix Session class assertions not prepared for class overrides, which could break some plugins which override the Session class on load (such as datadog or webmock adapters).
0.24.5 Bugfixes
  • fix for SSL handshake post connection SAN check using IPv6 address.
  • fix bug in DoH impl when the request returned no answer.
0.24.4 Improvements
  • digest_authentication plugin now supports passing HA1hashed with password HA1s (common to store in htdigest files for example) when setting the:hashed kwarg to true in the .digest_auth call.
    • ex: http.digest_auth(user, get_hashed_passwd_from_htdigest(user), hashed: true)
  • TLS session resumption is now supported
    • whenever possible, httpx sessions will recycle used connections so that, in the case of TLS connections, the first session will keep being reused, thereby diminishing the overhead of subsequent TLS handshakes on the same host.
    • TLS sessions are only reused in the scope of the same httpx session, unless the :persistent plugin is used, in which case, the persisted httpx session will always try to resume TLS sessions.
Bugfixes
  • When explicitly using IP addresses in the URL host, TLS handshake will now verify if the IP address is included in the certificate.
    • IP address will keep not being used for SNI, as per RFC 6066, section 3.
    • ex: http.get("https://10.12.0.12/get")
    • if you want the prior behavior, set HTTPX.with(ssl: {verify_hostname: false})
  • Turn TLS hostname verification on for jruby (it’s turned off by default).
    • if you want the prior behavior, set HTTPX.with(ssl: {verify_hostname: false})
0.24.3 Improvements
  • faraday adapter: reraise httpx timeout errors as faraday errors.
  • faraday adapter: support :bind option, which expects a host and port to connect to.
Bugfixes
  • faraday adapter: fix #close implementation using the wrong ivar.
  • faraday adapter: fix usage of requestt_timeout translation of faraday timeouts into httpx timeouts.
  • faraday adapter: ssl: { verify: false } was being ignored, and certification verification was still proceeding.
0.24.2 Improvements
  • besides an array, :resolver_options can now receive a hash for :nameserver, which must be indexed by IP family (Socket::AF_INET6 or Socket::AF_INET); each group of nameservers will be used for emitting DNS queries of that iP family.
  • :authentication plugin: Added #bearer_auth helper, which receives a token, and sets it as "Bearer $TOKEN in the "authorization" header.
  • faraday adapter: now implements #build_connection and #close, will now interact with faraday native timeouts (:read, :write and :connect).
Bugfixes
  • fixed native resolver bug when queries involving intermediate alias would be kept after the original query and mess with re-queries.
0.24.1 Improvements
  • datadog adapter: support :service_name configuration option.
  • datadog adapter: set :distributed_tracing to true by default.
  • :proxy plugin: when the proxy uri uses an unsupported scheme (i.e.: “scp://125.24.2.1”), a more user friendly error is raised (instead of the previous broken stacktrace).
Bugfixes
  • datadog adapter: fix tracing enable call, which was wrongly calling super.
  • :proxy plugin: fix for bug which was turning off plugins overriding HTTPX::Connection#send (such as the datadog adapter).

Post a comment

You can use basic HTML markup (e.g. <a>) or Markdown.

As you are not logged in, you will be
directed via GitHub to signup or sign in