昨天我分叉了 httpx,新的分叉版本叫做 httpxyz。
HTTPX 是 Python 中非常受歡迎的 HTTP 客戶端,有大量程式碼依賴它。
2024 年,我為它貢獻了 zstd 內容解碼功能,這項改動被合併並發布了!我當時非常開心和自豪。後來我發現功能有問題,我又提交了修正,但修正被忽視,且自 2024 年 11 月以來就沒有任何新版本發布。我和其他人多次要求發布包含我修正的版本,甚至親自寫信給作者。當我提到考慮分叉時,作者回覆說「1.0 版本開發正在進行中」。這或許是真的,但這個計畫已經持續超過兩年,連 0.28.2 的小修版本草稿也拖了一年多。
這一切讓我覺得創建分叉版本是最好的前進方式,能為依賴 httpx 的使用者提供穩定的路徑。
我理解維護者可能會感到疲憊,並且想專注於下一代版本,也知道生活中有 Python 以外的事,但對於如此重要的模組,既不維護也不讓其他人協助維護,這是有問題的。
我希望 Kim 能繼續打造更優秀的軟體,未來會有出色的 HTTPX2!
我將維護一個穩定的 httpx 分叉版本,不會大幅重寫、不會破壞相容性,也暫時不會大幅改變專案架構。座右銘是:稍微快一點,但不破壞現有功能。
httpx 自 2024 年起就沒有新版本發布,稍微頻繁一點的更新會有很大幫助。我的好友 Sander Wegter 是共同維護者,分擔工作量。
我覺得技術社群把太多雞蛋放在同一個籃子裡。GitHub 多年來對開發者很有幫助,但我擔心單一文化的風險。Codeberg 雖然還有些「粗糙」,但基本上能正常運作。Codeberg 是非營利組織運營,而非大型企業。此外,我今年在 FOSDEM 與他們聊過,他們都是很友善的人。
如果你願意,歡迎加入。但如果你現在用得很順利,我不確定是否有必要切換。這個分叉的目標是提供一條備用路徑。話雖如此,我們已經修復了許多錯誤。更新:隨著我們的新修正,httpxyz 現在比 httpx 更快且錯誤更少,我們鼓勵大家升級!
如果你使用 import httpxyz as httpx,很多東西都能正常運作。對於依賴 httpx 的套件,只要在載入該套件前先載入 httpxyz,就會使用我們的新套件。詳見 httpx 相容性說明。我認為 0.3.0 版本已涵蓋所有基礎,如果你還有問題,請開 issue,我們一定能解決!
這個網站是用我分叉的 blag 建置的。