httpx2 as the blessed httpx fork
- title
- httpx2 as the blessed httpx fork
- type
- summary
- summary
- Michiel Beijen on why his httpxyz fork is yielding to Pydantic's httpx2 fork, the Codeberg-vs-GitHub effect, and what httpx2 already got right
- tags
- python, open-source, http-libraries
- sources
- httpx2-tildeweb-post
- created
- 2026-05-21
- updated
- 2026-05-21
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
certifitotruststorefor OS-level certificate handling. - Switching to
compression.zstdon Python 3.14+, enabling zstd compression by default. - Merging
httpcoreand vendoring it in the repository โ the same step Beijen had done inhttpxyz.
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.