Skip to content

Releases: jawah/urllib3.future

Version 2.4.901

31 Dec 19:29
eba8a30
Compare
Choose a tag to compare

2.4.901 (2023-12-31)

  • Fixed an issue where a stateless resolver (e.g. null resolver, in-memory resolver, ...) could not be recycled.
  • Fixed an issue where one would attempt to close a resolver multiple times.

Version 2.4.900

30 Dec 19:25
63ea5e9
Compare
Choose a tag to compare

2.4.900 (2023-12-30)

  • Added issuer certificate extraction from SSLSocket with native calls with Python 3.10+ in ConnectionInfo.

  • Added support for DNS over TLS, DNS over HTTPS, DNS over QUIC, DNS over UDP, and local hosts-like DNS. PoolManager, and HTTPPoolManager constructor now expose an additional keyword argument, resolver=.... You can assign to it one of the presented protocols. Also, you may chain a list of resolvers, each can be limited to a list of host-pattern or not. The default is the system DNS. Our thread-safety promise covers this new feature.

    You can now do the following: PoolManage(resolver="doh://dns.google") for example. Please take a look at the official documentation to learn about the full capabilities.

  • Support for SOCKS proxies is now provided by python-socks instead of PySocks due to being largely unmaintained within a reasonable period. This change is made completely transparent.

  • Added details in ConnectionInfo about detailed timings and other details.
    established_latency is a timedelta that represents the amount of time consumed to get an ESTABLISHED network link.
    resolution_latency is a timedelta that represents the amount of time consumed for the hostname resolution.
    tls_handshake_latency is a timedelta that represents the amount of time consumed for the TLS handshake.
    request_sent_latency is a timedelta that represents the amount of time consumed to encode and send the whole request through the socket.

  • Fixed a rare thread safety issue when using at least one HTTP/3 multiplexed connection.

  • Deprecated function util.connection.create_connection(..) in favor of newly added contrib.resolver that will host from now on that function within BaseResolver as a method. Users are encouraged to migrate as soon as possible.

  • Support for preemptively negotiating HTTP/3 over QUIC based on RFC 9460 via an HTTPS DNS record.

  • Added support for enforcing IPv6, and/or IPv4 using the keyword parameter socket_family that can be provided in
    PoolManager, HTTP(S)ConnectionPool and HTTP(S)Connection. The three accepted values are socket.AF_UNSPEC
    socket.AF_INET, and socket.AF_INET6. Respectively, allow all, ipv4 only, and ipv6 only. Anything else will raise
    ValueError.

Version 2.3.902

08 Dec 07:41
c60a21d
Compare
Choose a tag to compare

2.3.902 (2023-12-08)

  • Fixed an issue where specifying cert_reqs=ssl.CERT_NONE or assert_hostname was ignored when using HTTP/3 over QUIC.

Version 2.3.901

26 Nov 08:42
2cbc25b
Compare
Choose a tag to compare

2.3.901 (2023-11-26)

  • Small performance improvement while in HTTP/1.1
  • Any string passed down to the body will enforce a default Content-Type: text/plain; charset=utf-8 for safety, unless
    you specify a Content-Type header yourself. The charset parameter will always be set to utf-8.
    It is recommended that you pass bytes instead of a plain string. If a conflicting charset has been set that
    does not refer to utf-8, a warning will be raised.
  • Added callable argument in urlopen, and request named on_upload_body that enables you to track
    body upload progress for a single request. It takes 4 positional arguments, namely:
    (total_sent: int, total_to_be_sent: int | None, is_completed: bool, any_error: bool)
    total_to_be_sent may be set to None if we're unable to know in advance the total size (blind iterator/generator).
  • Fixed a rare case where ProtocolError was raised instead of expected IncompleteRead exception.
  • Improved HTTP/3 overall performance.
  • Changed the default max connection per host for (http, https) pools managed by PoolManager.
    If the PoolManager is instantiated with num_pools=10, each (managed) subsequent pool will have maxsize=10.
  • Improved performance in a multithreading context while using many multiplexed connections.
  • Changed the default max saturated multiplexed connections to 64 as the minimum.
    Now a warning will be fired if you reach the maximum capacity of stored saturated multiplexed connections.

Version 2.3.900

18 Nov 15:25
1eb7ea8
Compare
Choose a tag to compare

2.3.900 (2023-11-18)

  • Disabled unsafe renegotiation option with TLS by default where applicable.
  • Added fallback package urllib3_future in addition to urllib3. This became increasingly needed as a significant number of projects require urllib3 and accidentally override this fork.

Version 2.2.907

11 Nov 19:18
c9145e7
Compare
Choose a tag to compare

2.2.907 (2023-11-11)

  • Reverted relying on qh3 to dynamically retrieve the max concurrent streams allowed before connection saturation.

Version 2.2.906

11 Nov 15:59
bdd39cd
Compare
Choose a tag to compare

2.2.906 (2023-11-11)

  • Bumped minimum requirement for qh3 to version 0.14.0 in order to drop private calls in contrib.hface.protocols._qh3.
  • Cache the last 1024 parse_url function calls as it is costly.
  • Fixed incomplete flow control window checks while sending data in HTTP/2.
  • Fixed unexpected BrokenPipeError exception in a rare edge case.
  • Changed behavior for efficiency around socket.recv to pull conn.blocksize bytes regardless of Response.read(amt=...).

Version 2.2.905

08 Nov 08:36
312020a
Compare
Choose a tag to compare

2.2.905 (2023-11-08)

  • Fixed loss of a QUIC connection due to an inappropriate check in conn.is_connected.
  • Separate saturated (multiplexed) connections from the main pool to a distinct one.

Version 2.2.904

06 Nov 18:58
10e844f
Compare
Choose a tag to compare

2.2.904 (2023-11-06)

  • Fixed concurrent/multiplexed request overflow in a full connection pool.
  • Fixed connection close that had in-flight request (in multiplexed mode), the connection appeared as not idle on clean reuse.

Version 2.2.903

06 Nov 07:14
a2566b5
Compare
Choose a tag to compare

2.2.903 (2023-11-06)

  • Improved overall performances in HTTP/2, and HTTP/3, with or without multiplexed.