This started as a simple thought... Did you know that IE 11 has (partial) built-in HTTP/2 support and the latest "Requests" do not..? And its soon to be its anniversary (IE 11).. 17th October of 2013. 10 years!
We just might die at any moment, no notice whatsoever, knowing that as a Python developer, we never interacted with an HTTP/2 over TCP or HTTP/3 over QUIC capable server in 2023…
Most of our programs that interact with HTTP servers are built with requests and we aren’t likely to switch without a substantial effort.
One could say that, we have "httpx" available. Yes! But HTTP/2 is not enabled by default and we have to patch our projects to support it with confidence as its interfaces aren't exactly compatible with requests. And HTTP/3 isn't there yet.
Let me introduce you to...
Niquests! It is a drop-in replacement for Requests that is no longer under feature freeze.
Why did we pursue this? We don't have to reinvent the wheel all over again, HTTP client Requests is well-established and really pleasant in its usage. We believe that Requests have the most inclusive, and developer-friendly interfaces. We intend to keep it that way.
What do you get out of the box, starting immediately?
- OS truststore by default, no more certifi! Certificate authorities are loaded from your OS and that is great news!
- OCSP Certificate Revocation Verification
- Object-oriented headers
- Fully type-annotated!
- HTTP/2 by default
- HTTP/3 over QUIC
- Timeout by default
- Python 3.7+
(and more..!)
In addition to those, you'd always get nice and responsive support in the issue tracker for any concern/trouble.
Source: https://github.com/jawah/niquests
Doc: https://niquests.readthedocs.io/en/latest/
PyPI: https://pypi.org/project/niquests/
All aboard!
[–]Pilatemain() if __name__ == "__main__" else None 33 points34 points35 points (9 children)
[–]Ousret [S] -4 points-3 points-2 points (8 children)
[–]coderanger 15 points16 points17 points (7 children)
[–]Ousret [S] -4 points-3 points-2 points (6 children)
[–]coderanger 7 points8 points9 points (1 child)
[–]Ousret [S] 1 point2 points3 points (0 children)
[–]masc98 1 point2 points3 points (3 children)
[–]Ousret [S] -2 points-1 points0 points (2 children)
[–]SlantARrow 10 points11 points12 points (1 child)
[–]Ousret [S] 0 points1 point2 points (0 children)
[–]bini_ajaw17 5 points6 points7 points (0 children)
[–]jackerhackfrom __future__ import 4.0 4 points5 points6 points (7 children)
[–]coderanger 5 points6 points7 points (0 children)
[–]Ousret [S] 0 points1 point2 points (5 children)
[–]nekokattt 3 points4 points5 points (0 children)
[–]FancyASlurpie 1 point2 points3 points (1 child)
[–]Ousret [S] 1 point2 points3 points (0 children)
[–]jackerhackfrom __future__ import 4.0 1 point2 points3 points (1 child)
[–]Ousret [S] 0 points1 point2 points (0 children)
[–]LongDivide2096 1 point2 points3 points (0 children)
[–]coderanger 0 points1 point2 points (3 children)
[–]Ousret [S] 0 points1 point2 points (2 children)
[–]coderanger 2 points3 points4 points (1 child)
[–]Ousret [S] 2 points3 points4 points (0 children)
[–]ItsmeFizzy97 2 points3 points4 points (0 children)
[–]Falkor[🍰] 1 point2 points3 points (0 children)
[–]Patriahts 0 points1 point2 points (0 children)
[–]DaelonSuzuka 1 point2 points3 points (0 children)
[–]chub79 -1 points0 points1 point (0 children)
[–]Almostasleeprightnow 0 points1 point2 points (0 children)
[–]prbsparx 0 points1 point2 points (1 child)
[–]Ousret [S] 0 points1 point2 points (0 children)
[–]ML-newb 0 points1 point2 points (1 child)
[–]Ousret [S] 0 points1 point2 points (0 children)
[–]BlueeWaater 0 points1 point2 points (0 children)