HTTP/3 frame types (RFC 9114 Section 7). $$\text{FrameType}$$ enumerates the standard frame type identifiers.
- data : FrameType
DATA frame (0x0). Carries request or response body data.
- headers : FrameType
HEADERS frame (0x1). Carries an encoded header block.
- cancelPush : FrameType
CANCEL_PUSH frame (0x3). Cancels a server push.
- settings : FrameType
SETTINGS frame (0x4). Conveys configuration parameters.
- pushPromise : FrameType
PUSH_PROMISE frame (0x5). Server push initiation.
- goaway : FrameType
GOAWAY frame (0x7). Initiates graceful shutdown.
- maxPushId : FrameType
MAX_PUSH_ID frame (0xD). Controls server push.
- unknown
(id : UInt64)
: FrameType
Unknown/extension frame type.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Network.HTTP3.instBEqFrameType.beq Network.HTTP3.FrameType.data Network.HTTP3.FrameType.data = true
- Network.HTTP3.instBEqFrameType.beq Network.HTTP3.FrameType.headers Network.HTTP3.FrameType.headers = true
- Network.HTTP3.instBEqFrameType.beq Network.HTTP3.FrameType.cancelPush Network.HTTP3.FrameType.cancelPush = true
- Network.HTTP3.instBEqFrameType.beq Network.HTTP3.FrameType.settings Network.HTTP3.FrameType.settings = true
- Network.HTTP3.instBEqFrameType.beq Network.HTTP3.FrameType.pushPromise Network.HTTP3.FrameType.pushPromise = true
- Network.HTTP3.instBEqFrameType.beq Network.HTTP3.FrameType.goaway Network.HTTP3.FrameType.goaway = true
- Network.HTTP3.instBEqFrameType.beq Network.HTTP3.FrameType.maxPushId Network.HTTP3.FrameType.maxPushId = true
- Network.HTTP3.instBEqFrameType.beq (Network.HTTP3.FrameType.unknown a) (Network.HTTP3.FrameType.unknown b) = (a == b)
- Network.HTTP3.instBEqFrameType.beq x✝¹ x✝ = false
Instances For
Equations
Convert a frame type to its numeric identifier. $$\text{toId} : \text{FrameType} \to \text{UInt64}$$
Equations
- Network.HTTP3.FrameType.data.toId = 0
- Network.HTTP3.FrameType.headers.toId = 1
- Network.HTTP3.FrameType.cancelPush.toId = 3
- Network.HTTP3.FrameType.settings.toId = 4
- Network.HTTP3.FrameType.pushPromise.toId = 5
- Network.HTTP3.FrameType.goaway.toId = 7
- Network.HTTP3.FrameType.maxPushId.toId = 13
- (Network.HTTP3.FrameType.unknown a).toId = a
Instances For
Parse a frame type from its numeric identifier. $$\text{fromId} : \text{UInt64} \to \text{FrameType}$$
Equations
- Network.HTTP3.FrameType.fromId 0 = Network.HTTP3.FrameType.data
- Network.HTTP3.FrameType.fromId 1 = Network.HTTP3.FrameType.headers
- Network.HTTP3.FrameType.fromId 3 = Network.HTTP3.FrameType.cancelPush
- Network.HTTP3.FrameType.fromId 4 = Network.HTTP3.FrameType.settings
- Network.HTTP3.FrameType.fromId 5 = Network.HTTP3.FrameType.pushPromise
- Network.HTTP3.FrameType.fromId 7 = Network.HTTP3.FrameType.goaway
- Network.HTTP3.FrameType.fromId 13 = Network.HTTP3.FrameType.maxPushId
- Network.HTTP3.FrameType.fromId x✝ = Network.HTTP3.FrameType.unknown x✝
Instances For
Equations
- One or more equations did not get rendered due to their size.
The maximum value encodable as a QUIC variable-length integer. $$2^{62} - 1 = 4611686018427387903$$
Equations
- Network.HTTP3.maxVarInt = 4611686018427387903
Instances For
Encode a value as a QUIC variable-length integer (RFC 9000 Section 16). Uses the minimum number of bytes for the given value. $$\text{encodeVarInt} : \text{UInt64} \to \text{ByteArray}$$
Equations
- One or more equations did not get rendered due to their size.
Instances For
Decode a QUIC variable-length integer from a ByteArray at the given offset.
$$\text{decodeVarInt} : \text{ByteArray} \to \mathbb{N} \to \text{Option}(\text{UInt64} \times \mathbb{N})$$
Returns the decoded value and the number of bytes consumed, or none on error.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An HTTP/3 frame: type + payload. $$\text{Frame} = \text{FrameType} \times \text{ByteArray}$$
Instances For
Encode an HTTP/3 frame to wire format: varint(type) ++ varint(length) ++ payload. $$\text{encode} : \text{Frame} \to \text{ByteArray}$$
Equations
Instances For
Decode an HTTP/3 frame from wire format at the given offset.
$$\text{decode} : \text{ByteArray} \to \mathbb{N} \to \text{Option}(\text{Frame} \times \mathbb{N})$$
Returns the decoded frame and total bytes consumed, or none on error.
Equations
- One or more equations did not get rendered due to their size.
Instances For
HTTP/3 settings identifiers.
Equations
Instances For
Equations
Instances For
Equations
Instances For
HTTP/3 settings values. $$\text{H3Settings} = \{ \text{maxFieldSectionSize} : \mathbb{N},\; \ldots \}$$
- maxFieldSectionSize : Nat
Maximum size of a header section (SETTINGS_MAX_FIELD_SECTION_SIZE, 0x6).
- qpackMaxTableCapacity : Nat
Maximum QPACK dynamic table capacity (SETTINGS_QPACK_MAX_TABLE_CAPACITY, 0x1).
- qpackBlockedStreams : Nat
Maximum number of blocked QPACK streams (SETTINGS_QPACK_BLOCKED_STREAMS, 0x7).
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
- Network.HTTP3.instBEqH3Settings.beq x✝¹ x✝ = false
Instances For
Equations
Default HTTP/3 settings. $$\text{defaultH3Settings} = \text{H3Settings}\{\}$$
Equations
Instances For
Encode HTTP/3 settings as a sequence of varint(id) ++ varint(value) pairs. Only non-zero settings are included. $$\text{encode} : \text{H3Settings} \to \text{ByteArray}$$
Equations
- One or more equations did not get rendered due to their size.
Instances For
Decode HTTP/3 settings from a byte buffer. $$\text{decode} : \text{ByteArray} \to \text{Option}(\text{H3Settings})$$