Skip to main content

Fork of mainstream urllib3 but ahead of his time

Project description

urllib3

PyPI Version Python Versions
urllib3.future is as BoringSSL is to OpenSSL but to urllib3 (except support is available!)

urllib3 is a powerful, user-friendly HTTP client for Python. urllib3.future goes beyond supported features while remaining mostly compatible. urllib3.future brings many critical features that are missing from the Python standard libraries:

  • Thread safety.
  • Connection pooling.
  • Client-side SSL/TLS verification.
  • File uploads with multipart encoding.
  • Helpers for retrying requests and dealing with HTTP redirects.
  • Support for gzip, deflate, brotli, and zstd encoding.
  • HTTP/1.1, HTTP/2 and HTTP/3 support.
  • Proxy support for HTTP and SOCKS.
  • 100% test coverage.

urllib3 is powerful and easy to use:

>>> import urllib3
>>> resp = urllib3.request("GET", "https://httpbin.org/robots.txt")
>>> resp.status
200
>>> resp.data
b"User-agent: *\nDisallow: /deny\n"
>>> resp.version
20

Installing

urllib3.future can be installed with pip:

$ python -m pip install urllib3.future

⚠️ Installing urllib3.future shadows the actual urllib3 package (depending on installation order) and you should carefully weigh the impacts. The semver will always be like MAJOR.MINOR.9PP like 2.0.941, the patch node is always greater or equal to 900.

Support for bugs or improvements is served in this repository. We regularly sync this fork with the main branch of urllib3/urllib3.

Compatibility with downstream

You should always install the downstream project prior to this fork.

e.g. I want requests to be use this package.

python -m pip install requests
python -m pip install urllib3.future
Package Is compatible? Notes
requests Invalid chunked transmission may raises ConnectionError instead of ChunkedEncodingError. Use of Session() is required to enable HTTP/3 support.
HTTPie Require plugin httpie-next to be installed or wont be able to upgrade to HTTP/3 (QUIC/Alt-Svc Cache Layer)
pip 🛑 Cannot use the fork because of vendored urllib3 v1.x
openapigenerator Simply patch generated setup.py requirement and replace urllib3 to urllib3.future

Want to report an incompatibility? Open an issue in that repository. All projects that depends on listed compatible package should work as-is.

Documentation

urllib3.future has usage and reference documentation at urllib3future.readthedocs.io.

Contributing

urllib3.future happily accepts contributions.

Security Disclosures

To report a security vulnerability, please use the GitHub advisory disclosure form.

Sponsorship

If your company benefits from this library, please consider sponsoring its development.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

urllib3_future-2.0.933.tar.gz (609.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

urllib3_future-2.0.933-py3-none-any.whl (156.2 kB view details)

Uploaded Python 3

File details

Details for the file urllib3_future-2.0.933.tar.gz.

File metadata

  • Download URL: urllib3_future-2.0.933.tar.gz
  • Upload date:
  • Size: 609.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for urllib3_future-2.0.933.tar.gz
Algorithm Hash digest
SHA256 d3679a70af507993507955957a727fef1bbf0ecd70f46b136f5918a5244f9e8a
MD5 e2c275905f1c02482efcdf5e5e4c8937
BLAKE2b-256 2fee2b1423316c743acf2f6d2836f83efac6a9dc30fc916e2fe9b9d5ab408788

See more details on using hashes here.

File details

Details for the file urllib3_future-2.0.933-py3-none-any.whl.

File metadata

File hashes

Hashes for urllib3_future-2.0.933-py3-none-any.whl
Algorithm Hash digest
SHA256 f8408e2d7ae55154f2a6ecabe38292ec255e0c97ec1063c44429daad627e93e3
MD5 b9d61988bd6cbbeafe48cfc6c6e1770f
BLAKE2b-256 8ac2638e582056d297d31b489881dbb08495ae5bf7e3bb852298b3fc32ec1e88

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page