HTTPCore II - the director's cut #419
Replies: 3 comments 5 replies
-
Nice, very nice. 😄 I skimmed through the new code… I must say, the A pre-PR review comment - looks like we're missing a I also think having the redesign into 1.0 is the most sensible option, rather than issuing 1.0 and then risking breaking some nitty gritty cases post-1.0. |
Beta Was this translation helpful? Give feedback.
-
Giving a friendly ping to some people in the HTTPX ecosystem that might be interested in this, because they may be relying on HTTPCore to this day, based on Third Party Packages and grep.app: Since the plan is to merge and release #420 then issue HTTPX 0.21, I guess there's no actual action item for folks for now other than watch out for the HTTPCore release and the corresponding API changes. Just pinging to prevent surprises coming up from user issues. :-) |
Beta Was this translation helpful? Give feedback.
-
Interesting! I was digging around through the httpx codebase the other day to fish out some metrics to expose and I went through the Async Connection Pool class. I remember being confused by the connection handling logic when the pool was full, and the fact both a lock and a semaphore was being used. |
Beta Was this translation helpful? Give feedback.
-
I've spent a significant amount of time lately working on a redesign of
httpcore
.There's some key issues that this redesign resolves...
The redesign that I've been working on at https://github.com/tomchristie/httpcore-the-directors-cut is now ready to go. It addresses these issues with a reworking from scratch. It's well documented, and has a more directly-usable API than this current version. It's also got 100% test coverage.
There's some other neat bits in there too, such as the "trace" extension, which gives a hook into inspecting the internal events that occur during the request/response cycle. This extension is needed for the HTTPX cli, in order to...
--http2
flag was passed. (Which may not actually be true.)Next question is how to best to migrate over to the new version. Most likely I'm going to need to make a major pull request into this repo, that pretty much updates everything. (Happy to take suggestions, tho)
I'd also like to push a 0.14 release (or pre-release) to PyPI, so that I can open a 0.21 httpx PR that integrates against the new backend.
Aside: I'd previously planned to release HTTP 1.0, and then follow up with 1.1 (adding the cli tool) and follow up with 1.2 (switching to this redesign), but we're actually going to instead have 1.0 include the cli and the httpcore redesign.
Beta Was this translation helpful? Give feedback.
All reactions