Versions in this module Expand all Collapse all v0 v0.0.2 Aug 9, 2025 v0.0.1 Aug 5, 2025 v0.0.0 Jul 28, 2025 Changes in this version + const AEADLimitReached + const ApplicationErrorErrorCode + const ConnectionIDLimitError + const ConnectionRefused + const CryptoBufferExceeded + const DefaultUDPDatagramMinSize + const FinalSizeError + const FlowControlError + const FrameEncodingError + const IPV6_DONTFRAG — windows/amd64 + const IP_DONTFRAGMENT — windows/amd64 + const InternalError + const InvalidToken + const KeyUpdateError + const NoError + const NoViablePathError + const ProtocolViolation + const StreamLimitError + const StreamStateError + const TransportParameterError + const Version1 + const Version2 + var ConnectionTracingKey = connTracingCtxKey + var Err0RTTRejected = errors.New("0-RTT rejected") + var ErrServerClosed = errServerClosed + var ErrTransportClosed = &errTransportClosed + var QUICChrome_115 = QUICChrome_115_IPv4 + var QUICChrome_115_IPv4 = QUICID + var QUICChrome_115_IPv6 = QUICID + var QUICFirefox_116 = QUICFirefox_116A + var QUICFirefox_116A = QUICID + var QUICFirefox_116B = QUICID + var QUICFirefox_116C = QUICID + var QUICVersionContextKey = handshake.QUICVersionContextKey + func ShuffleQUICTransportParameters(qtp *tls.QUICTransportParametersExtension) *tls.QUICTransportParametersExtension + func ShuffleTLSExtensions(exts []tls.TLSExtension) []tls.TLSExtension + func VariableLengthGREASEQTP(maxLen int) *tls.GREASETransportParameter + type ApplicationError = qerr.ApplicationError + type ApplicationErrorCode = qerr.ApplicationErrorCode + type ClientHelloInfo struct + AddrVerified bool + RemoteAddr net.Addr + type ClientToken struct + type Config struct + Allow0RTT bool + AllowConnectionWindowIncrease func(conn Connection, delta uint64) bool + DisablePathMTUDiscovery bool + DisablePathManager bool + EnableDatagrams bool + GetConfigForClient func(info *ClientHelloInfo) (*Config, error) + HandshakeIdleTimeout time.Duration + InitialConnectionReceiveWindow uint64 + InitialPacketSize uint16 + InitialStreamReceiveWindow uint64 + KeepAlivePeriod time.Duration + MaxConnectionReceiveWindow uint64 + MaxIdleTimeout time.Duration + MaxIncomingStreams int64 + MaxIncomingUniStreams int64 + MaxStreamReceiveWindow uint64 + TokenStore TokenStore + Tracer func(context.Context, logging.Perspective, ConnectionID) *logging.ConnectionTracer + Versions []Version + func (c *Config) Clone() *Config + type Connection interface + AcceptStream func(context.Context) (Stream, error) + AcceptUniStream func(context.Context) (ReceiveStream, error) + CloseWithError func(ApplicationErrorCode, string) error + ConnectionState func() ConnectionState + Context func() context.Context + LocalAddr func() net.Addr + OpenStream func() (Stream, error) + OpenStreamSync func(context.Context) (Stream, error) + OpenUniStream func() (SendStream, error) + OpenUniStreamSync func(context.Context) (SendStream, error) + ReceiveDatagram func(context.Context) ([]byte, error) + RemoteAddr func() net.Addr + SendDatagram func(payload []byte) error + SetCongestionControl func(congestion.CongestionControl) + func Dial(ctx context.Context, c net.PacketConn, addr net.Addr, tlsConf *tls.Config, ...) (Connection, error) + func DialAddr(ctx context.Context, addr string, tlsConf *tls.Config, conf *Config) (Connection, error) + type ConnectionID = protocol.ConnectionID + func ConnectionIDFromBytes(b []byte) ConnectionID + type ConnectionIDGenerator interface + ConnectionIDLen func() int + GenerateConnectionID func() (ConnectionID, error) + type ConnectionState struct + GSO bool + SupportsDatagrams bool + TLS tls.ConnectionState + Used0RTT bool + Version Version + type ConnectionTracingID uint64 + type DatagramTooLargeError struct + MaxDataLen int64 + func (e *DatagramTooLargeError) Error() string + func (e *DatagramTooLargeError) Is(target error) bool + type EarlyConnection interface + HandshakeComplete func() <-chan struct{} + NextConnection func(context.Context) (Connection, error) + func DialAddrEarly(ctx context.Context, addr string, tlsConf *tls.Config, conf *Config) (EarlyConnection, error) + func DialEarly(ctx context.Context, c net.PacketConn, addr net.Addr, tlsConf *tls.Config, ...) (EarlyConnection, error) + type EarlyListener struct + func ListenAddrEarly(addr string, tlsConf *tls.Config, config *Config) (*EarlyListener, error) + func ListenEarly(conn net.PacketConn, tlsConf *tls.Config, config *Config) (*EarlyListener, error) + func (l *EarlyListener) Accept(ctx context.Context) (EarlyConnection, error) + func (l *EarlyListener) Addr() net.Addr + func (l *EarlyListener) Close() error + type HandshakeTimeoutError = qerr.HandshakeTimeoutError + type IdleTimeoutError = qerr.IdleTimeoutError + type InitialPacketSpec struct + ClientTokenLength int + DestConnIDLength int + FrameBuilder QUICFrameBuilder + InitPacketNumber uint64 + InitPacketNumberLength PacketNumberLen + SrcConnIDLength int + TokenStore TokenStore + func (ps *InitialPacketSpec) UpdateConfig(conf *Config) + type Listener struct + func Listen(conn net.PacketConn, tlsConf *tls.Config, config *Config) (*Listener, error) + func ListenAddr(addr string, tlsConf *tls.Config, config *Config) (*Listener, error) + func (l *Listener) Accept(ctx context.Context) (Connection, error) + func (l *Listener) Addr() net.Addr + func (l *Listener) Close() error + type OOBCapablePacketConn interface + ReadMsgUDP func(b, oob []byte) (n, oobn, flags int, addr *net.UDPAddr, err error) + SetReadBuffer func(int) error + SyscallConn func() (syscall.RawConn, error) + WriteMsgUDP func(b, oob []byte, addr *net.UDPAddr) (n, oobn int, err error) + type PacketNumberLen = protocol.PacketNumberLen + const PacketNumberLen1 + const PacketNumberLen2 + const PacketNumberLen3 + const PacketNumberLen4 + type QUICFrame interface + CryptoFrameInfo func() (offset, length int, cryptoOK bool) + Read func() ([]byte, error) + type QUICFrameBuilder interface + Build func(cryptoData []byte) (allFrames []byte, err error) + type QUICFrameCrypto struct + Length int + Offset int + func (q QUICFrameCrypto) CryptoFrameInfo() (offset, length int, cryptoOK bool) + func (q QUICFrameCrypto) Read() ([]byte, error) + type QUICFramePadding struct + Length int + func (q QUICFramePadding) CryptoFrameInfo() (offset, length int, cryptoOK bool) + func (q QUICFramePadding) Read() ([]byte, error) + type QUICFramePing struct + func (q QUICFramePing) CryptoFrameInfo() (offset, length int, cryptoOK bool) + func (q QUICFramePing) Read() ([]byte, error) + type QUICFrames []QUICFrame + func (qfs QUICFrames) Build(cryptoData []byte) (payload []byte, err error) + func (qfs QUICFrames) BuildFromFrames(frames []byte) (payload []byte, err error) + type QUICID struct + Client string + Fingerprint string + Version string + type QUICRandomFrames struct + Length uint16 + MaxCRYPTO uint8 + MaxPADDING uint8 + MaxPING uint8 + MinCRYPTO uint8 + MinPADDING uint8 + MinPING uint8 + func (qrf *QUICRandomFrames) Build(cryptoData []byte) (payload []byte, err error) + type QUICSpec struct + ClientHelloSpec *tls.ClientHelloSpec + InitialPacketSpec InitialPacketSpec + UDPDatagramMinSize int + func QUICID2Spec(id QUICID) (QUICSpec, error) + func (s *QUICSpec) UpdateConfig(config *Config) + type ReceiveStream interface + CancelRead func(StreamErrorCode) + SetReadDeadline func(t time.Time) error + StreamID func() StreamID + type SendStream interface + CancelWrite func(StreamErrorCode) + Context func() context.Context + SetWriteDeadline func(t time.Time) error + StreamID func() StreamID + type StatelessResetError = qerr.StatelessResetError + type StatelessResetKey [32]byte + type Stream interface + SetDeadline func(t time.Time) error + type StreamError struct + ErrorCode StreamErrorCode + Remote bool + StreamID StreamID + func (e *StreamError) Error() string + func (e *StreamError) Is(target error) bool + type StreamErrorCode = qerr.StreamErrorCode + type StreamID = protocol.StreamID + type StreamLimitReachedError struct + func (e StreamLimitReachedError) Error() string + type TokenGeneratorKey = handshake.TokenProtectorKey + type TokenStore interface + Pop func(key string) (token *ClientToken) + Put func(key string, token *ClientToken) + func NewLRUTokenStore(maxOrigins, tokensPerOrigin int) TokenStore + type Transport struct + Conn net.PacketConn + ConnContext func(context.Context) context.Context + ConnectionIDGenerator ConnectionIDGenerator + ConnectionIDLength int + DisableVersionNegotiationPackets bool + MaxTokenAge time.Duration + StatelessResetKey *StatelessResetKey + TokenGeneratorKey *TokenGeneratorKey + Tracer *logging.Tracer + VerifySourceAddress func(net.Addr) bool + func (t *Transport) Close() error + func (t *Transport) Dial(ctx context.Context, addr net.Addr, tlsConf *tls.Config, conf *Config) (Connection, error) + func (t *Transport) DialEarly(ctx context.Context, addr net.Addr, tlsConf *tls.Config, conf *Config) (EarlyConnection, error) + func (t *Transport) Listen(tlsConf *tls.Config, conf *Config) (*Listener, error) + func (t *Transport) ListenEarly(tlsConf *tls.Config, conf *Config) (*EarlyListener, error) + func (t *Transport) ReadNonQUICPacket(ctx context.Context, b []byte) (int, net.Addr, error) + func (t *Transport) WriteTo(b []byte, addr net.Addr) (int, error) + type TransportError = qerr.TransportError + type TransportErrorCode = qerr.TransportErrorCode + type UTransport struct + QUICSpec *QUICSpec + func (t *UTransport) Dial(ctx context.Context, addr net.Addr, tlsConf *tls.Config, conf *Config) (Connection, error) + func (t *UTransport) DialEarly(ctx context.Context, addr net.Addr, tlsConf *tls.Config, conf *Config) (EarlyConnection, error) + func (ut *UTransport) MakeDialer() ... + type Version = protocol.Version + type VersionNegotiationError = qerr.VersionNegotiationError