golang.org/x/net@v0.25.1-0.20240516223405-c87a5b62e243/quic/doc.go (about)

     1  // Copyright 2023 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Package quic implements the QUIC protocol.
     6  //
     7  // This package is a work in progress.
     8  // It is not ready for production usage.
     9  // Its API is subject to change without notice.
    10  //
    11  // This package is low-level.
    12  // Most users will use it indirectly through an HTTP/3 implementation.
    13  //
    14  // # Usage
    15  //
    16  // An [Endpoint] sends and receives traffic on a network address.
    17  // Create an Endpoint to either accept inbound QUIC connections
    18  // or create outbound ones.
    19  //
    20  // A [Conn] is a QUIC connection.
    21  //
    22  // A [Stream] is a QUIC stream, an ordered, reliable byte stream.
    23  //
    24  // # Cancelation
    25  //
    26  // All blocking operations may be canceled using a context.Context.
    27  // When performing an operation with a canceled context, the operation
    28  // will succeed if doing so does not require blocking. For example,
    29  // reading from a stream will return data when buffered data is available,
    30  // even if the stream context is canceled.
    31  //
    32  // # Limitations
    33  //
    34  // This package is a work in progress.
    35  // Known limitations include:
    36  //
    37  //   - Performance is untuned.
    38  //   - 0-RTT is not supported.
    39  //   - Address migration is not supported.
    40  //   - Server preferred addresses are not supported.
    41  //   - The latency spin bit is not supported.
    42  //   - Stream send/receive windows are configurable,
    43  //     but are fixed and do not adapt to available throughput.
    44  //   - Path MTU discovery is not implemented.
    45  package quic