Skip to content

[HTTPXodus] Consider migrating from httpx to httpx2 (the actively maintained fork) #470

Description

@ProgrammerPlus1998

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. 🙏

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions