Background — what happened to httpx
httpx is one of the most important HTTP clients in the Python ecosystem (370k+ dependent repositories). However:
- The last stable release is 0.28.1 (December 2024) — over 20 months ago.
- For most of 2025 the repository was dormant.
- 1.0.dev4–dev6 shipped between 2026-08-19 and 2026-08-31. No committed date for stable 1.0.
Meanwhile, httpx2 is the actively maintained fork by Pydantic Services (with original httpx author Tom Christie involved). It is a drop-in replacement for the public API used here.
What migration could look like
httpx is a direct, declared runtime dependency of the published replicate package. Direct usage is well-contained — 5 files (replicate/webhook.py, replicate/client.py, replicate/stream.py, replicate/prediction.py, replicate/exceptions.py).
Two viable paths:
Option A — dual support (recommended for libraries): prefer httpx2 when available, fall back to httpx:
try:
import httpx2 as httpx
except ImportError:
import httpx
with httpx2>=2.12.0; python_version >= "3.10" added as an extra/optional dependency. The public API surface is identical, so no call-site changes are needed beyond the import.
Option B — hard switch: replace the dependency outright. Requires Python ≥ 3.10.
Risks of staying on httpx
- Security exposure: no stable-line releases means no stable-line security fixes.
- Compounding migration cost: the gap between 0.28.x and whatever 1.0 becomes keeps growing.
Happy to open a PR for either option if the maintainers are interested. 🙏
Background — what happened to httpx
httpxis one of the most important HTTP clients in the Python ecosystem (370k+ dependent repositories). However:Meanwhile,
httpx2is the actively maintained fork by Pydantic Services (with original httpx author Tom Christie involved). It is a drop-in replacement for the public API used here.What migration could look like
httpxis a direct, declared runtime dependency of the publishedreplicatepackage. Direct usage is well-contained — 5 files (replicate/webhook.py,replicate/client.py,replicate/stream.py,replicate/prediction.py,replicate/exceptions.py).Two viable paths:
Option A — dual support (recommended for libraries): prefer httpx2 when available, fall back to httpx:
with
httpx2>=2.12.0; python_version >= "3.10"added as an extra/optional dependency. The public API surface is identical, so no call-site changes are needed beyond the import.Option B — hard switch: replace the dependency outright. Requires Python ≥ 3.10.
Risks of staying on httpx
Happy to open a PR for either option if the maintainers are interested. 🙏