Skip to content

Conversation

@Vizonex
Copy link
Contributor

@Vizonex Vizonex commented Oct 26, 2025

What do these changes do?

For preparation of http/2 and http/3 I have devised a plan to slowly work h2 and aioquic into aiohttp which involves
making abstract bases or implementing type factories into the program so that http/1.1, http/2 and http/3 can be interchangeable in a future update.

Are there changes in behavior for the user?

There shouldn't be any changes yet for users working at a higher level, however users will start notice new arguments appearing
when utilizing things from a ClientSession at a lower-level, these for now can be undocumented and left ignored and anyone curious as to why should be able to find this pull request with ease. I have planned this migration to be done slow and steady so that newer protocols can be introduced soon.

Is it a substantial burden for the maintainers to support this?

Like I have stated above this process will need to be done slowly if we want http/2 http/3 in the future. My goal is to have at least 1 of these protocols added and fully working with clients and servers before 2027 which should be a reasonable amount of time to complete this goal I had in mind.

Related issue number

Checklist

  • I think the code is well written
  • Unit tests for the changes exist
  • Documentation reflects the changes
  • If you provide code modification, please add yourself to CONTRIBUTORS.txt
    • The format is <Name> <Surname>.
    • Please keep alphabetical order, the file is sorted by names.
  • Add a new news fragment into the CHANGES/ folder
    • name it <issue_or_pr_num>.<type>.rst (e.g. 588.bugfix.rst)

    • if you don't have an issue number, change it to the pull request
      number after creating the PR

      • .bugfix: A bug fix for something the maintainers deemed an
        improper undesired behavior that got corrected to match
        pre-agreed expectations.
      • .feature: A new behavior, public APIs. That sort of stuff.
      • .deprecation: A declaration of future API removals and breaking
        changes in behavior.
      • .breaking: When something public is removed in a breaking way.
        Could be deprecated in an earlier release.
      • .doc: Notable updates to the documentation structure or build
        process.
      • .packaging: Notes for downstreams about unobvious side effects
        and tooling. Changes in the test invocation considerations and
        runtime assumptions.
      • .contrib: Stuff that affects the contributor experience. e.g.
        Running tests, building the docs, setting up the development
        environment.
      • .misc: Changes that are hard to assign to any of the above
        categories.
    • Make sure to use full sentences with correct case and punctuation,
      for example:

      Fixed issue with non-ascii contents in doctest text files
      -- by :user:`contributor-gh-handle`.

      Use the past tense or the present tense a non-imperative mood,
      referring to what's changed compared to the last released version
      of this project.

@Vizonex Vizonex requested a review from asvetlov as a code owner October 26, 2025 19:32
@Vizonex Vizonex requested a review from webknjaz as a code owner October 26, 2025 19:39
@psf-chronographer psf-chronographer bot added the bot:chronographer:provided There is a change note present in this PR label Oct 26, 2025
@codspeed-hq
Copy link

codspeed-hq bot commented Oct 26, 2025

CodSpeed Performance Report

Merging #11717 will not alter performance

Comparing Vizonex:future-protocol-support (4984ede) with master (6fabae5)

Summary

✅ 59 untouched

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bot:chronographer:provided There is a change note present in this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant