Skip to content

Add zapros - #3298

Closed
karpetrosyan wants to merge 1 commit into
vinta:masterfrom
karpetrosyan:add-zapros
Closed

Add zapros#3298
karpetrosyan wants to merge 1 commit into
vinta:masterfrom
karpetrosyan:add-zapros

Conversation

@karpetrosyan

@karpetrosyankarpetrosyan commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Project

zapros - Modern and extensible HTTP client with sync and async APIs, retries, caching, and WebSockets built in.

Checklist

  • I read CONTRIBUTING.md - awesome-python is a shortlist, not a catalog
  • One project per PR
  • PR title format: Add project-name
  • Entry format: - [pypi-name](https://github.com/owner/repo) - Description ending with period.
  • Display name is the PyPI package name
  • Placed in an existing use case (new sections and subcategories are maintainer-only)
  • Meets all Quality Requirements: active, stable, documented, at least 1 month old

Which Tier

Pick one:

  • Obvious choice - a tool an experienced Python developer would name when asked "what do I use for this?"
  • Challenger - not yet the obvious choice, but a credible successor to one. Give adoption-trajectory evidence, not popularity alone.

Explain:

zapros is an HTTP client with sync and async APIs and retries, caching, mocking, HTTP cassettes, and a WebSocket client built in, designed to run on any I/O (Python, Rust, or the browser's network stack), written by one of the httpx maintainers. First release March 2026, 20 releases since (v0.16.0, Jul 2026), 27K downloads/month (pypistats), 212 stars. Placed last in the Clients challenger tier per downloads ordering, behind urllib3 and httpx2.

Displacement

None proposed — added at the end of Clients as a third challenger, leaving the existing five untouched. Happy to name a displacement if the maintainer prefers to hold the cap

@karpetrosyankarpetrosyan changed the title docs: add zapros as challenger to HTTP ClientsAdd zaprosAug 21, 2026
@vinta

vinta commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Thanks, but HTTP Clients / Clients is full at 5 entries (requests, httpx, aiohttp, urllib3, httpx2). The only way into a full use case is a Displacement argument naming the entry your project replaces, see CONTRIBUTING.md, and this PR makes none. The numbers don't help either: zapros is at 31,602 downloads/month against 158M for httpx2, the smallest listed entry. Your hishel PR (#3297) is merged into Caching, so read this as a verdict on the use case being full, not on your work.

@vintavinta closed this Aug 23, 2026
@karpetrosyan

Copy link
Copy Markdown
ContributorAuthor

@vinta, doesn't it make sense to use it instead of httpx, which hasn't had a release in 2 years and isn't actively maintained? That's basically the reason Pydantic created httpx2: httpx was unmaintained

@vinta

Copy link
Copy Markdown
Owner

No. httpx being unmaintained is an argument for dropping httpx (though it's still widely used, and that earns it a spot), not for adding zapros.

zapros is 5 months old, still 0.x, and its own README calls it a newborn project that may contain bugs. Not a displacement case yet.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@karpetrosyan@vinta