top | item 46266343

(no title)

mmmaantu | 2 months ago

Building pyreqwest, a high-performance Python HTTP client backed by Rust’s reqwest. It has gotten quite feature rich: async and sync APIs, similar ergonomic interface of reqwest, full type hints, and built-in testing/mocking. It has no unsafe code, and no Python-side dependencies. (Started after getting too annoyed with all the issues httpx has.)

https://github.com/MarkusSintonen/pyreqwest

discuss

order

sirfz|2 months ago

I've recently updated an internal tool which basically acts as a configuration and dependency/context manager for performing hundreds of api calls. I added an httpx backend (to test vs the current urllib3 backend) and also introduced an async API (httpx as well). However, from your benchmarks it seems like I should've went with aiohttp for faster async? I will work on integrating pyreqwest as well

mmmaantu|2 months ago

Yes httpx is badly broken. Eg its connection pooling implementation is not great at all. There are various issues in httpx/httpcore. There are also old open PRs trying to fix issues but maintainer(s) are just not intrested.

iib|2 months ago

That sounds awesome. But I have two curiosities: What are the problems of httpx? And was pycurl not enough for what you wanted to do?

mmmaantu|2 months ago

pycurl doesnt support async, right?