| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Network.LibP2P.Mux.Yamux.Frame
Description
Yamux frame header encoding/decoding.
Every Yamux frame has a fixed 12-byte header: Version (1) | Type (1) | Flags (2 BE) | StreamID (4 BE) | Length (4 BE)
Synopsis
- data FrameType
- data Flags = Flags {}
- data YamuxHeader = YamuxHeader {}
- data GoAwayCode
- encodeHeader :: YamuxHeader -> ByteString
- decodeHeader :: ByteString -> Either String YamuxHeader
- defaultFlags :: Flags
- headerSize :: Int
- initialWindowSize :: Word32
Documentation
Yamux frame types.
Constructors
| FrameData | 0x00: Data frame with payload |
| FrameWindowUpdate | 0x01: Window size increment |
| FramePing | 0x02: Keepalive/latency measurement |
| FrameGoAway | 0x03: Session termination |
data YamuxHeader Source #
Complete Yamux frame header (12 bytes).
Constructors
| YamuxHeader | |
Instances
| Show YamuxHeader Source # | |
Defined in Network.LibP2P.Mux.Yamux.Frame Methods showsPrec :: Int -> YamuxHeader -> ShowS # show :: YamuxHeader -> String # showList :: [YamuxHeader] -> ShowS # | |
| Eq YamuxHeader Source # | |
Defined in Network.LibP2P.Mux.Yamux.Frame | |
data GoAwayCode Source #
Go Away error codes.
Constructors
| GoAwayNormal | 0x00: Normal termination |
| GoAwayProtocol | 0x01: Protocol error |
| GoAwayInternal | 0x02: Internal error |
Instances
| Show GoAwayCode Source # | |
Defined in Network.LibP2P.Mux.Yamux.Frame Methods showsPrec :: Int -> GoAwayCode -> ShowS # show :: GoAwayCode -> String # showList :: [GoAwayCode] -> ShowS # | |
| Eq GoAwayCode Source # | |
Defined in Network.LibP2P.Mux.Yamux.Frame | |
encodeHeader :: YamuxHeader -> ByteString Source #
Encode a Yamux header to 12 bytes.
decodeHeader :: ByteString -> Either String YamuxHeader Source #
Decode a Yamux header from 12 bytes.
defaultFlags :: Flags Source #
No flags set.
headerSize :: Int Source #
Yamux header size is always 12 bytes.
initialWindowSize :: Word32 Source #
Default initial window size: 256 KiB (262144 bytes).