This is a proposal to add an HTTP/3 client and server implementation in x/net/http3.

Similarly to the accepted form of #58547 (x/net/quic), this proposal is to add an experimental package with an API subject to change during development. Once we have a complete implementation, we will file a separate proposal for API review.

Initial development will be in an internal package (x/net/internal/http3) until the details are firm enough for external testing. We will then move the package to x/net/http3 and (when we have some confidence the API is right) file the API review proposal.

Comment From: gabyhelp

Related Issues

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

Comment From: gopherbot

Change https://go.dev/cl/641496 mentions this issue: quic, internal/quic/quicwire: split wire encode/decode functions to new package

Comment From: gopherbot

Change https://go.dev/cl/641838 mentions this issue: internal/http3: basic stream read/write operations

Comment From: gopherbot

Change https://go.dev/cl/641836 mentions this issue: internal/http3: new package

Comment From: gopherbot

Change https://go.dev/cl/641837 mentions this issue: internal/http3: error codes

Comment From: gopherbot

Change https://go.dev/cl/642115 mentions this issue: internal/http3: qpack wire primitives

Comment From: gopherbot

Change https://go.dev/cl/642516 mentions this issue: internal/http3: add Transport and ClientConn

Comment From: gopherbot

Change https://go.dev/cl/642599 mentions this issue: internal/http3: QPACK encoding and decoding

Comment From: gopherbot

Change https://go.dev/cl/643780 mentions this issue: http2, internal/httpcommon: factor out common request header logic for h2/h3

Comment From: gopherbot

Change https://go.dev/cl/644116 mentions this issue: internal/http3: return error on mid-frame EOF

Comment From: gopherbot

Change https://go.dev/cl/644118 mentions this issue: internal/http3: add RoundTrip

Comment From: gopherbot

Change https://go.dev/cl/644117 mentions this issue: internal/http3: define connection and stream error types

Comment From: gopherbot

Change https://go.dev/cl/644915 mentions this issue: internal/http3: add request/response body transfer

Comment From: gopherbot

Change https://go.dev/cl/646617 mentions this issue: internal/http3: add Server

Comment From: gopherbot

Change https://go.dev/cl/646616 mentions this issue: internal/http3: refactor in prep for sharing transport/server code

Comment From: gopherbot

Change https://go.dev/cl/652455 mentions this issue: http2, internal/httpcommon: factor out server header logic for h2/h3

Comment From: gopherbot

Change https://go.dev/cl/652457 mentions this issue: internal/http3: make read-data tests usable for server handlers

Comment From: gopherbot

Change https://go.dev/cl/653395 mentions this issue: internal/http3: move more common stream processing to genericConn

Comment From: gopherbot

Change https://go.dev/cl/653396 mentions this issue: internal/http3: server handlers

Comment From: aclements

This proposal has been added to the active column of the proposals project and will now be reviewed at the weekly proposal review meetings. — aclements for the proposal review group