Bringing "uv-like" performance leaps to Python HTTP

January 2026 • 3 min read

Recently, an acquaintance showed me their production logs, and I honestly didn't believe them at first. They claimed Niquests was essentially "ridiculing" their previous HTTP performance at scale.

They had migrated a high-throughput service from httpxaiohttpNiquests.

Even as the author, I was skeptical that we could beat established async giants by that wide of a margin. I assumed it was an anomaly until we sat down and reviewed the real-world cluster data.

The Numbers

There are no words to describe how satisfying the difference is, so we ran a controlled benchmark to visualize it.

We used a simple script that executes 1k requests. We deliberately disabled Niquests' manual multiplexing features (for fairness) to showcase how the client behaves out of the box compared to the ecosystem standards.

Client Average Delay Protocol
httpx 1.771s HTTP/2
aiohttp 1.372s HTTP/1.1
niquests 0.704s HTTP/2

Or even better, looking at 10k requests:

Benchmark GIF showing Niquests completing significantly faster than aiohttp and httpx

GIF is a courtesy of @Andarius, a coworker who is as hyped as I am.

The Secret: Connection Behavior

Why is the gap so large?

It usually comes down to how the client handles pressure. When under load, Niquests pulls ahead because it handles connections like a modern web browser. Instead of opening a flood of new TCP connections (which is expensive), it leverages true HTTP/2+ multiplexing to load-balance requests over a limited number of established connections.

Most Python HTTP clients, even when claiming HTTP/2 support, often struggle to fully utilize the multiplexing capabilities of the protocol, falling back to connection churning behavior that slows down throughput.

Pure Python, No Rust Required

Perhaps the most interesting part for the Python community is that it achieves this performance while remaining pure Python.

We are seeing a trend of "rewriting it in Rust" to solve performance bottlenecks (e.g., uv). While I love Rust, there is something satisfying about squeezing this level of performance out of Python itself. Niquests has optional extensions for extra speed, but they aren't required to see these gains.

We just hit 1.7M downloads/month.

If you are looking for that "uv-like" speed without leaving the comfort of Python, give it a spin.

View on GitHub