Last Update: 2023-12-05 13:42:13 +0000



  • 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 responses);

  • 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 gzip;

  • fixed compression plugin not handling content-encoding: identity payloads;

  • do not overwrite user-defined max_requestson HTTP2 connection handshake;

  • retries plugin: connection was blocking when a request with body was retried;

  • alt-svc: clear response header was causing the process to hang;


  • Code coverage improved to 91%;