Reference Registry
External references normalized in one place instead of repeated across every branch index.
Specifications (canonical)
- RFC 6455 — The WebSocket Protocol. The primary, mandatory source for the whole
websocket-protocol-from-scratchbranch — read it directly, don't just read summaries of it. - RFC 1122 — Requirements for Internet Hosts. Framing and transport fundamentals underneath the custom binary protocol.
man tcp,man setsockopt— read past the tutorials forTCP_NODELAY,SO_RCVBUF/SO_SNDBUF, and socket options in general.man epoll,man kqueue— the two event-loop APIs this atlas uses, Linux and macOS respectively.
Books (canonical)
- Beej's Guide to Network Programming — Brian "Beej" Hall. Free, the backbone of the sockets material in
tcp-fundamentals. - TCP/IP Illustrated, Volume 1 — W. Richard Stevens. Deep reference for what's actually on the wire during the handshake, teardown, and flow control.
- Designing Data-Intensive Applications — Martin Kleppmann. Messaging and streaming chapters for
presence-rooms-and-fanout. - Test-Driven Development for Embedded C — James Grenning. TDD discipline for systems code, carried over from Atlas I and II.
Papers & classic writeups
- Dan Kegel, "The C10K Problem" — the argument for event loops over thread-per-connection, and the starting point for its C10M evolution; central to
connection-concurrency-at-scale. - Jeff Preshing (preshing.com) — memory ordering and lock-free patterns, carried over from Atlas I/II, applied here to the connection registry.
- Discord engineering blog, Slack engineering blog — real, documented chat-at-scale architecture, referenced (not implemented) in
presence-rooms-and-fanout.
Tools & reference implementations
- MDN, "Writing WebSocket Servers" — complementary implementation guide alongside RFC 6455.
swss(C, RFC 6455, no dependencies) — a reference implementation for design comparison only; never copy its code.- Wireshark /
tcpdump— used throughoutnetwork-craftsmanshipto see TCP and WebSocket frames on the wire. ws(Node) documentation — referenced only for expected behavior inclient-in-typescript, not used as a dependency; the client is hand-written over the protocol.- libFuzzer / AFL++ — frame and parser fuzzing, carried over from Atlas I/II, applied here to malformed WebSocket frames.
- Redis Pub/Sub documentation — mentioned in
presence-rooms-and-fanoutas the real-world backplane solution for the optional v5 milestone; not implemented in depth here.
See also: Full Index