// Copyright 2023 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package quic implements the QUIC protocol. // // This package is a work in progress. // It is not ready for production usage. // Its API is subject to change without notice. // // This package is low-level. // Most users will use it indirectly through an HTTP/3 implementation. // // # Usage // // An [Endpoint] sends and receives traffic on a network address. // Create an Endpoint to either accept inbound QUIC connections // or create outbound ones. // // A [Conn] is a QUIC connection. // // A [Stream] is a QUIC stream, an ordered, reliable byte stream. // // # Cancelation // // All blocking operations may be canceled using a context.Context. // When performing an operation with a canceled context, the operation // will succeed if doing so does not require blocking. For example, // reading from a stream will return data when buffered data is available, // even if the stream context is canceled. // // # Limitations // // This package is a work in progress. // Known limitations include: // // - Performance is untuned. // - 0-RTT is not supported. // - Address migration is not supported. // - Server preferred addresses are not supported. // - The latency spin bit is not supported. // - Stream send/receive windows are configurable, // but are fixed and do not adapt to available throughput. // - Path MTU discovery is not implemented. package quic