Description
There are two critical features missing from the Python standard library:
Connection re-using/pooling and file posting. It's not terribly hard to
implement these yourself, but it's much easier to use a module that already
did the work for you.
The Python standard libraries urllib and urllib2 have little to do
with each other. They were designed to be independent and standalone, each
solving a different scope of problems, and urllib3 follows in a similar
vein.
urllib3 alternatives and similar packages
Based on the "HTTP" category.
Alternatively, view urllib3 alternatives based on common mentions on social networks and blogs.
-
httplib2
Small, fast HTTP client library for Python. Features persistent connections, cache, and Google App Engine support. Originally written by Joe Gregorio, now supported by community. -
AnyAPI
DISCONTINUED. AnyAPI is a library that helps you to write any API wrapper with ease and in pythonic way. -
kiss-headers
Python package for HTTP/1.1 style headers. Parse headers to objects. Most advanced available structure for http headers. -
urllib3.future
urllib3.future is the supercharged low level http client we dreamed of. Support HTTP/1.1, HTTP/2, and HTTP/3 with multiplexed connections! With DNS over QUIC, TLS, HTTPS and UDP. DNSSEC Protected & Async!
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of urllib3 or a related project?
README
urllib3 is a powerful, user-friendly HTTP client for Python. Much of the Python ecosystem already uses urllib3 and you should too. urllib3 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.
- Proxy support for HTTP and SOCKS.
- 100% test coverage.
urllib3 is powerful and easy to use:
>>> import urllib3
>>> http = urllib3.PoolManager()
>>> resp = http.request("GET", "http://httpbin.org/robots.txt")
>>> resp.status
200
>>> resp.data
b"User-agent: *\nDisallow: /deny\n"
Installing
urllib3 can be installed with pip:
$ python -m pip install urllib3
Alternatively, you can grab the latest source code from GitHub:
$ git clone https://github.com/urllib3/urllib3.git
$ cd urllib3
$ pip install .
Documentation
urllib3 has usage and reference documentation at urllib3.readthedocs.io.
Community
urllib3 has a community Discord channel for asking questions and collaborating with other contributors. Drop by and say hello ๐
Contributing
urllib3 happily accepts contributions. Please see our contributing documentation for some tips on getting started.
Security Disclosures
To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure with maintainers.
Maintainers
- @sethmlarson (Seth M. Larson)
- @pquentin (Quentin Pradet)
- @theacodes (Thea Flowers)
- @haikuginger (Jess Shapiro)
- @lukasa (Cory Benfield)
- @sigmavirus24 (Ian Stapleton Cordasco)
- @shazow (Andrey Petrov)
๐
Sponsorship
If your company benefits from this library, please consider sponsoring its development.
For Enterprise
Professional support for urllib3 is available as part of the Tidelift Subscription. Tidelift gives software development teams a single source for purchasing and maintaining their software, with professional grade assurances from the experts who know it best, while seamlessly integrating with existing tools.