`requests` has a friendlier API than the standard library. However, it does not support newer versions of HTTP, nor does it support `async`. The maintainer considers it complete, feature-frozen software, IIRC - they'd rather keep it stable for existing users and let other libraries succeed it.
`aiohttp` supports `async` but was never popular for non-async
`httpx` supported newer HTTP versions and both async and non-async. However the maintainer decided to close all outside submissions, issues and discussions for personal reasons.
`httpx2` is a maintained fork of `httpx`
'urllib3' completely saved me once. We had to authenticate with the border proxy using a certificate, then make a request to a web service ... that needed authenticating with a certificate. Urllib3 was the only one that could do it.
Thanks for the explanation !
Also niquests as well which is a dropin replacement and imo wayyy better than httpx
niquest is something like a one-man-show, which is an issue-per-se
Of course, it is clearly superior to everything else (being authored by a french guy !). But sadly, some people do not accept this simple fact :(
“Niquer” means “to f*ck” in French slang
thanks for the summary.
>`httpx` supported newer HTTP versions and both async and non-async. However the maintainer decided to close all outside submissions, issues and discussions for personal reasons.
how can something like this happen? and which positive consequence there can be out of that?
> how can something like this happen?
https://xkcd.com/2347
Specifically in this case, the consensus seems to be the maintainer is having some mental health struggles and chose to close out outside contribution.
And why don't people use pycurl? Curl is the king of the hill...
There are tradeoffs to the non-Python HTTP libraries like pycurl and pyreqwests, namely:
- Non-portability to alternative Python implementations or environments without the supporting C libraries
- Less visibility into the client internals (for debugging etc)
Thx!