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.)
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
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.
https://github.com/MarkusSintonen/pyreqwest