# httpx2 as the blessed httpx fork

Michiel Beijen had forked the abandoned `httpx` Python HTTP library six weeks earlier, named the package `httpxyz`, merged old PRs, forked `httpcore`, and fixed performance issues. Yesterday the Pydantic team announced their own fork as `httpx2`. His post is the handoff — they have the team and the ecosystem, and the community shouldn't be split across two forks.

## How the two forks compare today

`httpx2` is currently missing the performance improvements `httpxyz` added but will likely close that gap soon. `httpx2` already made three smart calls Beijen was unsure about:

- Switching from `certifi` to `truststore` for OS-level certificate handling.
- Switching to `compression.zstd` on Python 3.14+, enabling zstd compression by default.
- Merging `httpcore` and vendoring it in the repository — the same step Beijen had done in `httpxyz`.

## The Codeberg-vs-GitHub friction

The interesting side-note: Beijen contacted Kludex (Starlette maintainer, on the Pydantic team) about a possible joint fork. Kludex's worry was that `httpxyz` couldn't get popular on Codeberg. Beijen pushes back gently — `httpxyz` was still gaining stars daily, popular Python packages are starting to migrate to Codeberg, and users install via `pip` or `uv` and don't care about the forge. But he acknowledges that with the Pydantic team's reach, even a Codeberg-hosted fork would have benefited from their backing if they'd chosen to back his.

## What this is an example of

A clean, low-ego transition. The post isn't competitive; the framing is "now that Pydantic is doing this, the community shouldn't be split." `httpxyz` will stay up but the recommended migration target is `httpx2`. This is the cooperative-fork dynamic the community usually fails at — see [[fsnotify-maintainer-dispute]] for the version where governance ambiguity makes the same kind of transition look like a takeover.

The original `httpx` impasse was the reason Beijen forked in the first place — "I didn't want to be the maintainer of an HTTP library per se." That motivation made the handoff easy. He started the fork to break a deadlock, not to own the library.
