points by t098i3 15 hours ago

`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`

RantyDave 4 hours ago

'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.

BoumTAC 15 hours ago

Thanks for the explanation !

niltecedu 13 hours ago

Also niquests as well which is a dropin replacement and imo wayyy better than httpx

  • JackSlateur 12 hours ago

    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 :(

    • fmajid 11 hours ago

      “Niquer” means “to f*ck” in French slang

giov4 12 hours ago

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?

  • t098i3 10 hours ago

    > 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.

lofaszvanitt 14 hours ago

And why don't people use pycurl? Curl is the king of the hill...

  • t098i3 14 hours ago

    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)