世界を動かす技術を、日本語で。

なぜ私はhttpxをフォークしたのか

2026年3月25日原文(tildeweb.nl)

概要

  • httpxのフォーク「httpxyz」を作成した理由と背景
  • メンテナンスやリリースの停滞、GitHub上での運営方針の問題点を指摘
  • フォークの方針は「安定性重視」「大きな変更なし」
  • Codebergへの移行理由や今後のサポート体制について説明
  • 他の選択肢や移行の必要性についてもアドバイス

httpxをフォークした理由

  • httpx はPython向けの人気HTTPクライアントライブラリ
  • 2024年に zstdコンテンツデコーディング 機能をコントリビュートし、マージ・リリースされた実績
  • しかし、その機能に不具合が見つかり、 修正を提案 したが無視され、2024年11月以降リリースも停止
  • 自分や他のユーザーが 修正版のリリース を何度も要望
  • 作者に直接メールしたが、「1.0開発中」とのみ返答
  • 1.0リリースの計画 は2年以上前から続くが進捗が遅い
  • パッチレベルのリリース (0.28.2)も1年以上ドラフト状態

GitHub運営上の問題

  • イシューが非公開化 され、ディスカッションも停止
  • イシュー非公開により、コントリビューションや利用者の問題解決が困難化
  • redditスレッド でも議論が発生
  • 1.0リリースが数年越しの話題になっており、将来的な大幅変更の可能性も指摘
  • Simon Willisonによる 慎重な意見 も参照推奨
  • openaiやanthropicのPythonパッケージ もpyproject.tomlで1.0をインストールしないようガード
  • マイナーアップデートで破壊的変更 を加えることがあり、多くのユーザーに負担
  • 作者は Django REST frameworkMkDocs の作者でもあり、同様にイシューやディスカッションを停止した前例

フォーク決断の理由

  • これらの状況から、 httpxに依存するユーザーのため安定したフォーク が必要と判断
  • メンテナーバーンアウトや“次”への集中も理解しつつ、 メンテナンス放棄と他者の参加拒否 は問題視
  • 作者へのリスペクトと今後の活躍への期待も表明

FAQ

  • Q: なぜフォークしたのか?
    • 上記の理由すべてが動機
  • Q: 今後の方針は?
    • httpxの安定フォークとして 大規模な書き換えや破壊的変更は行わない
    • モットーは「 少しだけ速く、壊さずに進む
  • Q: 負担が大きくて自分も燃え尽きないか?
    • httpxは2024年以降リリースがなく、 もう少し頻繁なリリース が目標
    • Sander Wegter が共同メンテナーとして負担分散
  • Q: なぜCodebergに移行したのか?
    • GitHub依存の単一文化 への懸念
    • Codebergは 非営利運営、FOSDEMで運営者と交流した好印象
    • リポジトリは こちら (リンク省略)
  • Q: 今すぐ自分のコードを移行すべきか?
    • 必要があれば歓迎だが、現状問題なければ 無理に移行しなくても良い
    • 他のパッケージへの移行も選択肢
      • niquests はrequestsのフォークでHTTP/2, HTTP/3, async対応
      • requests APIに近いため、httpxからの移行も比較的容易
  • Q: プラグイン互換性は?
    • import httpxyz as httpxで多くは動作するが、 一部プラグインや拡張機能は要調整
    • 今後の対応を観察予定

終わりに

  • Hacker News での議論も参照推奨
  • 参加・利用への感謝と「楽しんで!」のメッセージ

Hackerたちの意見

なんかhttpxとhtmlxを混同しちゃった。

同じく!君のコメントのおかげでやっと気づいたよ。

あと、htmlxとhtmxも混同してるのかな?

あ、htmxのことを言ってるんだね。私も同じだよ。しばらくその記事を読んでたけど、「HTTPXはPython用の非常に人気のあるHTTPクライアントです。」って言葉に混乱して、「なんでOpenAIはhtmxを使ってるの?」って思ってたけど、最終的に何が起こってるのか気づいたよ。

私もこの記事をずっと間違って読んでたわ。

最近のPythonのhttp周りはちょっと怖いよね。フォークするんじゃなくて、力を合わせてほしいな… Niquests見てみて。https://github.com/jawah/niquests 俺は見たことを解決しようとしてるんだ。何年も頑張ってきたから。

確認済み、機能も増えて、切り替えも楽だよ。

httpxの基盤はあんまり良くないと思う。最初にPythonのrequestsをasyncに対応させた「ポート」だから成功したんだろうけど、それ以外はイマイチ。APIもパフォーマンスも微妙だし、調整も大変。メンテナの考え方もあんまり良くない。最後のポイントについては、記事でいくつか言及されてたけど、理由もなく突然プロダクションプロジェクトが壊れることもあるからね。完璧じゃないけど、みんなAiohttpに切り替えることをおすすめするよ。

確かにniquestsがもっと使われてないのは残念だよね。フランス語の(c'est Français)の議論を使おうとしたら、初期のユーザーをたくさん集められると思うよ。

それって「knee-quests」それとも「nigh-quests」?最近、こういう絵文字付きのコミットをよく見るようになったけど、変わってるね。

ありがとう、君のプロジェクトにリンクするね。

半端なサイドプロジェクトはPyPIを汚すだけだから、思い切ってフォークを作ってそのトレードオフを受け入れた方が、長期的には楽だよ。

Hacker Newsで議論の続きを見る