x/net/quic: add QUIC implementation
I propose adding an implementation of the QUIC transport protocol ([RFC 9000](https://www.rfc-editor.org/rfc/rfc9000.html)) in `golang.org/x/net/quic`. QUIC is the protocol underlying HTTP/3, and QUIC support is a necessary prerequisite for HTTP/3 support. The proposed API is in https://go.dev/cl/468575. This API does not include support for Early Data, but does not preclude adding that support at a later time. RFC 9000 does not define a QUIC API, but it does define a set of operations that can be performed on a QUIC [connection](https://www.rfc-editor.org/rfc/rfc9000.html#section-5.3) or [stream](https://www.rfc-editor.org/rfc/rfc9000.html#section-2.4). A QUIC connection is shared state between a client and server. * open a [client] connection: ```go conn, err := quic.Dial(ctx, "udp", "127.0.0.1:8000", &quic.Config{}) ``` * listen for incoming connections: ```go l, err := quic.Listen("udp", "127.0.0.1:8000", &quic.Config{}) conn, err := l.Accept(ctx) ``` A QUIC stream is an ordered, reliable byte stream. A connection may have many streams. (A QUIC stream is loosely analogous to a TCP connection.) * create streams: ```go s, err := conn.NewStream(ctx) ``` * accept streams created by the peer: ```go s, err := conn.AcceptStream(ctx) ``` * read from, write to, and close streams: ```go n, err = s.Read(buf) n, err = s.Write(buf) s.Close() ``` * stream operations also have Context-aware variants: ```go n, err = s.ReadContext(c
Posted by neild on Feb 15, 2023, 6:23 PM
Tags
Related issues
Raise real-world problems, find people facing the same issue, and discuss solutions.2,500 issues0 comments
support (Sysadmin)
Support connecting to remote devcontainers (devcontainer on remote host)
Option to use Waffle menu or links displayed normally
I also attempted to package ROCM on musl.
But why is there no such pushback agains linux kernel?
OpenCode Support
Upcoming changes to the tado° API
Allow Mac users to use Apple native containerization
Support for the Containerization Framework on macOS
x/net/quic: add QUIC implementation
I propose adding an implementation of the QUIC transport protocol ([RFC 9000](https://www.rfc-editor.org/rfc/rfc9000.html)) in `golang.org/x/net/quic`. QUIC is the protocol underlying HTTP/3, and QUIC support is a necessary prerequisite for HTTP/3 support. The proposed API is in https://go.dev/cl/468575. This API does not include support for Early Data, but does not preclude adding that support at a later time. RFC 9000 does not define a QUIC API, but it does define a set of operations that can be performed on a QUIC [connection](https://www.rfc-editor.org/rfc/rfc9000.html#section-5.3) or [stream](https://www.rfc-editor.org/rfc/rfc9000.html#section-2.4). A QUIC connection is shared state between a client and server. * open a [client] connection: ```go conn, err := quic.Dial(ctx, "udp", "127.0.0.1:8000", &quic.Config{}) ``` * listen for incoming connections: ```go l, err := quic.Listen("udp", "127.0.0.1:8000", &quic.Config{}) conn, err := l.Accept(ctx) ``` A QUIC stream is an ordered, reliable byte stream. A connection may have many streams. (A QUIC stream is loosely analogous to a TCP connection.) * create streams: ```go s, err := conn.NewStream(ctx) ``` * accept streams created by the peer: ```go s, err := conn.AcceptStream(ctx) ``` * read from, write to, and close streams: ```go n, err = s.Read(buf) n, err = s.Write(buf) s.Close() ``` * stream operations also have Context-aware variants: ```go n, err = s.ReadContext(c
Comments (0)
No comments yet. Start the discussion.