Migrating to HTTPX2(github.com) |
Migrating to HTTPX2(github.com) |
The problem with httpx as a dependency is that it's currently working towards a 1.0 release which will be full of breaking changes.
The httpx2 project is essentially a fork that promises not to break the existing API, which makes it a more stable dependency to build against.
I wrote a pretty long comment about my concerns for the breaking 1.0 version last year - https://github.com/encode/httpx/discussions/3344#discussionc... - in that comment I recommended the HTTPX project release their 1.0 as a package called httpx2 instead, but a year later we now have an httpx2 (released by a different maintainer) that keeps the old API.
The httpx maintainer closed off access to issues and discussions on the repo, has been ignoring PRs, and hasn’t updated it in a half a year.
I don’t think there is any reason to consider httpx as a viable project any more. The Pydantic httpx fork has taken its place.
Unfortunately that 1.0 work is happening in a private repository.
I mean really, closing repos? excluding maintainers? committing only on private repos?
This type of behavior should be moderated and banned from any FOSS activity to avoid exactly this situation of becoming a liability.
I've never seen a open source project page without a github link or a git clone ref like this https://www.encode.io/hx/ it is so ridiculous, wasn't that stuff on github? and isn't it anyway there due to over 1k forks?
what's the advantage of having this behavior? I see it only damaging towards the person, the project and the community.
We started this fork because there was no activity on HTTPX, a very popular Python HTTP library.
A few weeks later, Pydantic started their own fork called HTTPX2. We decided to embrace this and support HTTPX2. We're upstreaming our fixes to HTTPX2 and in our opinion it should be the "blessed" fork. Pydantic can make this more successful than we ever can.
See also https://tildeweb.nl/~michiel/httpx2.html
Thanks for all your support!
Sander & Michiel
wtf is going on
But seriously, migrating between different libs should be ~free for both Anthropic and OpenAI.
I mean, obviously Python 2.7 is newer than Python 3.1
I remember swearing I would never migrate to python3 but here we are, I migrated without even feeling it or realizing when (But I do remember django played a big role).
Happens with the Linux kernel as well.
Minors and hotfixes allow you to release a new version for an older release (like if you released 3.7 but you found a bug present in 3.4, you can release 3.4.1 which would be newer than 3.7), making it possible to have multiple supported versions at the same time.
You shouldn’t assume anything about relative date of 2.7 and 3.1.
I (ok, Qwen 3.7 27B) wrote some benchmarking code to compare throughput, and niquests seems to be substantially more performant for traffic that doesn't need to traverse the public web, e.g. intra cluster service to service communication:
https://gist.github.com/jtbaker/61061d27949ef48ac31e85ff28c2...
uv run scripts/bench_http.py --count 1000 Benchmarking 1000 requests to http://localhost:8000/health (concurrency=16, timeout=30.0s) Date: 2026-08-28T10:18:34.480111
Running httpx... Running httpx2... Running niquests...
Metric httpx httpx2 niquests ------------------------------------------------------- mean 17.8ms 4.6ms 3.3ms min 3.2ms 1.5ms 1.2ms max 632.4ms 11.1ms 10.8ms p50 15.9ms 4.2ms 3.0ms p95 32.4ms 7.4ms 5.6ms p99 52.1ms 8.5ms 8.4ms total 1.15s 315.5ms 239.7ms throughput 869.2 req/s 3170.0 req/s 4171.1 req/s
Winner: niquests (4.8x faster by wall clock)
But what are the upsides of this change?
> I've closed off access to issues and discussions.
> I don't want to continue allowing an online environment with such an absurdly skewed gender representation. I find it intensely unwelcoming, and it's not reflective of the type of working environments I value.
https://www.reddit.com/r/Python/comments/1rl5kuq/anyone_know...
SDK is just a wrapper around POST https://api.openai.com/v1/responses
Just REST + JSON.
streaming (sse parsing) + tool calling + structured outputs + pagination are easy to do.
yeah nice engineering clowns
But yes, it doesn't support HTTP3. Here's the related issue: https://github.com/pydantic/httpx2/issues/92
Not that there is anything wrong with QUIC, at least its built by someone who knows what they are doing, unlike HTTP2
Nobody should use requests. If you are still using it, the quickest way to get off it is to switch to niquests, which is actively developed, supports all the things I mentioned above, and API-compatible with requests - you can just do `import niquests as requests` for an instant upgrade.
thanks!
[1] https://www.python-httpx.org/advanced/transports/#wsgi-trans...
When I first read the title, I assumed this was some fancy new protocol that extends HTTP or something. But it's just about an SDK switching one transitive dependency with a fork? And arguably one that should just have its functionality be part of stdlib?
Unless OpenAI deprecates the HTTP endpoint, you can pretty much ignore the whole SDK packages.
Nobody is going to get fired for using http1.1
if you move to http3 and a bunch of clients cant use your site, then you're gonna get yelled at.
And again, both genders can write good/bad software just the same.
I mean really, closing repos? excluding maintainers? committing only on private repos?
This type of behavior should be moderated and banned from any FOSS activity to avoid exactly this situation of becoming a liability.
I've never seen a open source project page without a github link or a git clone ref like this https://www.encode.io/hx/ it is so ridiculous, wasn't that stuff on github? and isn't it anyway there due to over 1k forks?
what's the advantage of having this behaviour? I see it only damaging towards the person, the project and the community.
That’s even more reason to consider it non-viable.
There is no reason to encourage or support this type of behavior in a project. It is their right to do with it as they please, but I’m not interested in a project that functions like this. The forks are continuing to operate like true community projects.
Users of the project can (and have been) moving to forks that are operated as open, community projects in the continued spirit of the project’s original intention.
For what it’s worth, the maintainer has stated their reasons and they are not related to AI or scraper bots.
He doesn't owe those developers anything, of course, but likewise they do not owe him loyalty and thus since an open fork exists, his project will die.
Killing the project is also his right, but people also have a right to be upset by his passive aggressive behavior. Just announce that you're shutting down the project and move on, don't waste our time.
They also effectively killed off MkDocs: https://github.com/mkdocs/mkdocs/discussions/3677
I have no idea what that means other this person might not be the easier to work with, or get along with.
Some people get spam. Some people get spam about vulnerabilities that don't exist. And some people get threats.
Do they?
If you cannot handle or take this responsibility towards the community you cannot do opensource. just do a company and try to profit, but don't interfere with FOSS and impact FOSS in general if you cannot handle it.
>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
https://github.com/encode/httpx/blob/master/LICENSE.md
The contributors provided the source of the project under these terms, which are stated up front. Any responsibility to you beyond this is imagined.
FOSS is not affected negatively.
First because FOSS is not en entity in the first place. There is no "community" per se but a muriad of softwares choosing open source licences for various reasons.
Second because the choices of one project maintainer is negligible.
> This type of behavior should be moderated and banned from any FOSS activity
Banned by who and where?
> I've never seen a open source project page without a github link or a git clone ref
Now I understand. You must be new. How old are you? 10? FOSS has existed way before github and will probably still exist when github will be forgotten. There are still many open source projects not using github, some do not even use git.
> what's the advantage of having this behavior?
Not having to deal with external input, PRs, bug reports seems to be a good example.
> I see it only damaging towards the person
Which person? The maintainer? I highly doubt so.
> the project
The project will be fine as long as the maintainer wants it to be active. This is the only thing that counts.
> and the community.
Which community? Other devs? They can (and do) fork when they wish to do so.
Yes it is, this was a major component.
>This type of behavior should be moderated and banned from any FOSS activity
By moderators that are not existing but should actually moderate human mental issues affecting FOSS
>Now I understand. You must be new. How old are you? 10? FOSS has existed way before github and will probably still exist when github will be forgotten. There are still many open source projects not using github, some do not even use git.
Nope, is just that a useful open source project for me has always public report and that's the basis to start collaborating.
>Not having to deal with external input, PRs, bug reports seems to be a good example.
That's normal in open source, should be taken into account and managed like everybody else does in open source projects. Just go look at sftpgo, as an example.
>Which person? The maintainer? I highly doubt so.
Yes clearly, the community easily realizes this behavior and now I see a private path of commits in private reps of somebody working alone.
>The project will be fine as long as the maintainer wants it to be active. This is the only thing that counts.
Nope, forked, hated and closed are not fine for an open source project.
>Which community? Other devs? They can (and do) fork when they wish to do so.
All of it, anybody using the open source, should be free to use, modify and collaborate on a project independently from the mental issues of the one that started it. closing repos just goes against all of this and should be a shame.
> All of it, anybody using the open source, should be free to use, modify and collaborate on a project independently from the mental issues of the one that started it. closing repos just goes against all of this and should be a shame.
You are making a false assumption that open source software is about the author surrendering is rights and forced collaboration. It is not.
Open source software is about the use of a license that grants the end user rights to study, modify and publish modifications (basically giving rights to fork) under the same or compatible license, often with mandory author attribution. There is nothing in these licenses about original author duties on maintaining a project open to collaboration, it is only about user rights.
maintainers are very important to me because i know the effort behind and the backbone of passion that holds them alive, and I would do the same, I would do it for passion and ask nothing back, especially topics like Credits and Copyrights (go check the related history, a shame)