DEV Community

mkmkkkkk
mkmkkkkk

Posted on

The calling layer won. The numbers aren't close.

I run a scraper across 742 sources. Once a week it pulls package registry stats, and this week one ratio stopped me.

The numbers

Monthly PyPI downloads, pulled 2026-08-09:

package downloads/month change
litellm 710,000,000 +16%
vllm 5,290,000 −11%

That's 134 to 1, and the gap is widening from both ends.

I assumed it was a quirk of Python packaging until I checked npm, which is a different ecosystem with a different population of developers:

package downloads/week
Vercel ai SDK 20,400,000
llamaindex 127,000

160 to 1.

Two registries, two independent groups of people, the same answer: the world is calling models, not standing them up.

Why the ratio matters more than either number

Absolute download counts are close to meaningless. CI pulls dominate them — every pipeline that installs a dependency tree counts as a "download" no matter who or what triggered it. If I told you litellm did 710M installs, the correct response is "so does everything with a lot of transitive dependents."

The ratio survives that objection, because the same CI population pulls both packages. Whatever multiple CI adds, it adds to numerator and denominator alike.

That's the only reason I trust it. Any comparison between packages pulled by different populations — a ten-year-old logging library versus a one-year-old framework, say — is not a comparison at all.

The category next door is shrinking outright

Same window, vector database clients:

package change
weaviate-client −27%
pinecone-client −6%
qdrant-client −4%
mcp +10% (325M/month)

Every client in the category decelerating in the same month, while the protocol layer climbs, is not a cycle. Cycles don't hit four competitors simultaneously and spare the thing next to them.

And one more, which I found more interesting than the vector DBs: instructor is down 6%. Its entire job was patching a model deficiency — coercing reliable structured output. When a model grows that capability natively, the middleware that faked it doesn't decline gracefully. It stops being installed.

What I'd do with this

If you're choosing where to spend a year of your life building: build where the 710 million is, not where the 5.29 million is. The durable layer right now is the one that routes, calls, and mediates — not the one that serves weights or stores vectors.

That's not a prediction about which technology is better. vLLM is excellent software. It's an observation about where the installs are going, which is a different question and usually a more useful one.

Check it yourself

curl -s https://pypistats.org/api/packages/litellm/recent
curl -s https://pypistats.org/api/packages/vllm/recent
curl -s "https://api.npmjs.org/downloads/point/last-week/ai"
Enter fullscreen mode Exit fullscreen mode

Three commands, no auth, no key. The numbers were sitting in public the whole time — they just weren't news anywhere.

I only noticed because I have an instrument pointed at package registries every day, and it cost an afternoon to build. If you have a question about a market, the cheapest thing you can do is stop reading opinions about it and go measure it.

Top comments (0)