Skip to content

Latest commit

 

History

History

rfcs

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

RFCs

These are the plain-text RFCs colibri is written from, copied unmodified from https://www.rfc-editor.org/rfc/rfcNNNN.txt on 2026-09-16. CLAUDE.md non-negotiable 10 says to read the RFCs themselves rather than a summary or another implementation's source; these copies are what that sentence points at, so every reader works from the same bytes.

SHA256SUMS records each file's checksum. Check that nothing was edited with:

cd docs/rfcs && shasum -a 256 -c SHA256SUMS

RFC 7540 is deliberately absent. RFC 9113 obsoletes it, and colibri never reads or cites it.

RFC 8446 is absent for the same reason. RFC 9846, the July 2026 revision of TLS 1.3, obsoletes it. The wire format and the version codepoint are unchanged, but the sections are renumbered and some requirements are tightened, so a section number copied from RFC 8446 may name a different rule or none at all.

HTTP

RFC Title What colibri uses it for
9110 HTTP Semantics The semantics core h2 and h3 share (decision 15)
5234 Augmented BNF for Syntax Specifications: ABNF The core rules RFC 9110 §2.1 includes
7405 Case-Sensitive String Support in ABNF The %s prefix RFC 9110 §2.1 and RFC 9112 §1.2 add to RFC 5234: %s"HTTP" matches only as written, and a quoted string with no prefix matches in any case (decision 15), copied on 2026-09-29
9111 HTTP Caching Not implemented; its conformance bar is zero (decision 16)
9112 HTTP/1.1 h11 (decisions 88 and 91)
9931 Security Considerations for Optimistic Protocol Transitions in HTTP/1.1 What h11 does with the octets that follow a CONNECT or an Upgrade request before its answer (decision 109), copied on 2026-09-29
6585 Additional HTTP Status Codes The 431 an h11 server answers a field section too large with (decision 92), copied on 2026-09-25
3986 Uniform Resource Identifier (URI): Generic Syntax The grammar of Host and of the request-target that RFC 9110 §4 and RFC 9112 §3.2 cite, copied on 2026-09-25
9113 HTTP/2 h2
7541 HPACK: Header Compression for HTTP/2 hpack, and the Huffman code and prefixed integer in wire (decision 11)
9114 HTTP/3 h3
9204 QPACK: Field Compression for HTTP/3 qpack
7838 HTTP Alternative Services The client learns h3 from a TCP response's Alt-Svc (decision 100), copied on 2026-09-28
9460 Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records) The HTTPS record's alpn and port, which the client takes as values (decision 100), copied on 2026-09-28

QUIC

RFC Title What colibri uses it for
8999 Version-Independent Properties of QUIC The version-independent packet reader (invariant 22)
9000 QUIC: A UDP-Based Multiplexed and Secure Transport quic, and the variable-length integer in wire
9001 Using TLS to Secure QUIC The TLS provider's QUIC mode and crypto.Suite (decisions 8 and 9)
9002 QUIC Loss Detection and Congestion Control Loss recovery, design §8 step 10
9369 QUIC Version 2 Version 2 beside version 1, for #54, copied on 2026-09-29
9368 Compatible Version Negotiation for QUIC The version_information transport parameter RFC 9369 §4 requires, copied on 2026-09-29

TLS

RFC Title What colibri uses it for
9846 The Transport Layer Security (TLS) Protocol Version 1.3 The semantics of the TLS provider (decision 8); obsoletes RFC 8446
7301 Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension Negotiating h2 and h3; the ask to chapulin (decision 10)

Compression

These six are in compression/, copied unmodified from the same address: the first three on 2026-09-25 and the other three on 2026-09-30. RFC 9112 §7.2 defines the deflate and gzip transfer codings through RFC 9110 §8.4.1, and each coding names one of these formats. h11 decodes both through stdx's decoders (decision 90), as the owner ruled in #60. The client decodes the zstd and br content codings through stdx's decoders too (decision 101 as amended, #80).

RFC Title What colibri uses it for
1951 DEFLATE Compressed Data Format Specification version 1.3 The compressed stream inside both codings
1950 ZLIB Compressed Data Format Specification version 3.3 The wrapper of the deflate coding, with its Adler-32 check
1952 GZIP file format specification version 4.3 The wrapper of the gzip coding, with its CRC-32 check
7932 Brotli Compressed Data Format The br content coding (§13) and its window (§9.1)
8878 Zstandard Compression and the 'application/zstd' Media Type The zstd content coding (§7.2)
9659 Window Sizing for Zstandard Content Encoding The zstd coding's window of 8 MB (§3); updates RFC 8878

qlog

These three are Internet-Drafts, not RFCs, in qlog/, copied unmodified on 2026-09-27 from https://www.ietf.org/archive/id/<name>.txt, which keeps each revision unchanged. The owner ruled them in until the RFCs publish (decision 102). Each events draft's §2.1 has an implementation of a draft name its event schema with the draft number, so colibri writes urn:ietf:params:qlog:events:quic-13 and urn:ietf:params:qlog:events:http3-13.

Draft Title What colibri uses it for
main-schema-14 qlog: Structured Logging for Network Protocols The file header, the event envelope and the JSON Text Sequences serialization of qlog
quic-events-13 QUIC event definitions for qlog The events quic logs
h3-events-13 HTTP/3 qlog event definitions The events h3 logs

qvis, the viewer most qlog users open, reads the older qlog 0.3 alone. tools/qlog_to_qvis.py rewrites a colibri log into that form (decision 102 as amended), from the three drafts that define it, copied the same way on 2026-09-28. colibri itself follows none of them.

Draft Title What colibri uses it for
main-schema-02 Main logging schema for qlog The qlog 0.3 header tools/qlog_to_qvis.py writes
quic-events-02 QUIC event definitions for qlog The QUIC event names and members it writes
h3-events-02 HTTP/3 and QPACK qlog event definitions The HTTP/3 event names and members it writes

The main schema's §11.2 writes a log as JSON Text Sequences, so the two RFCs that define them are here too, copied from rfc-editor.org on the same day.

RFC Title What colibri uses it for
7464 JavaScript Object Notation (JSON) Text Sequences The record separator and line feed around each record
8259 The JavaScript Object Notation (JSON) Data Interchange Format The objects, strings and numbers inside a record

The URL Standard

The WHATWG URL Standard is not an RFC. It is the source of the name=value&name=value form of a query and of + as a space, which no RFC defines: RFC 3986 §3.4 says only where a query starts and ends. The owner ruled it a source on 2026-10-21, beside qlog's drafts (decision 127). whatwg/url.bs is its Bikeshed source, copied unmodified on 2026-10-25 from https://raw.githubusercontent.com/whatwg/url/845bafca22fb0c5a42c4bf384a9bdea525a2f10d/url.bs, the commit of 2026-10-19. A citation names its section by the id the source gives it, such as urlencoded-parsing.

Source Title What colibri uses it for
url.bs URL Standard The application/x-www-form-urlencoded parser (urlencoded-parsing), which the server's query reader follows

Percent-decoding itself is RFC 3986 §2.1, which colibri cites for it.

Extensions colibri declines

Each is read so that saying no is done correctly on the wire.

RFC Title What colibri uses it for
9218 Extensible Prioritization Scheme for HTTP Ignored, beyond the parsing RFC 9113 still requires (decision 18)
8441 Bootstrapping WebSockets with HTTP/2 Not implemented (decision 19)
9221 An Unreliable Datagram Extension to QUIC Not implemented (decision 22)