{-# LANGUAGE PatternSynonyms #-} -- | This main module provides APIs for QUIC. -- -- The -threaded option must be specified to GHC to use this library. module Network.QUIC ( -- * Connection Connection , abortConnection -- * Stream , Stream , StreamId , streamId -- ** Category , isClientInitiatedBidirectional , isServerInitiatedBidirectional , isClientInitiatedUnidirectional , isServerInitiatedUnidirectional -- ** Opening , stream , unidirectionalStream , acceptStream -- ** Closing , closeStream , shutdownStream , resetStream , stopStream -- * IO , recvStream , sendStream , sendStreamMany -- * Information , ConnectionInfo(..) , getConnectionInfo -- * Statistics , ConnectionStats(..) , getConnectionStats -- * Synchronization , wait0RTTReady , wait1RTTReady , waitEstablished -- * Exceptions and Errors , QUICException(..) , TransportError(.., NoError, InternalError, ConnectionRefused, FlowControlError, StreamLimitError, StreamStateError, FinalSizeError, FrameEncodingError, TransportParameterError, ConnectionIdLimitError, ProtocolViolation, InvalidToken, ApplicationError, CryptoBufferExceeded, KeyUpdateError, AeadLimitReached, NoViablePath) , cryptoError , ApplicationProtocolError(..) ) where import Network.QUIC.Connection import Network.QUIC.IO import Network.QUIC.Info import Network.QUIC.Stream import Network.QUIC.Types