Proxygen is a production-grade C++ HTTP library developed by Meta, providing comprehensive support for HTTP/1.1, HTTP/2, HTTP/3 (QUIC), and WebTransport. It offers both a classic callback-based server/client framework and a modern coroutine-based API using folly::coro. The architecture is layered: low-level codecs for wire protocol parsing, session management with flow control and rate limiting, transport abstraction (TCP, TLS, QUIC), and high-level handler/filter chains. The library includes extensive utilities for DNS resolution, consistent hashing, stream compression, structured headers, and connection pooling. It is heavily tested and designed for high-performance, multi-threaded production environments. While primarily a server framework, it also provides a full client stack and sample applications (echo, proxy, push, WebSocket, H3). The codebase is well-structured with many reusable components, though it remains tightly coupled to Meta's ecosystem (folly, wangle, fizz, mvfst).
webtransport-go is a Go library implementing the WebTransport protocol over HTTP/3, based on quic-go. It provides both client and server functionality to establish WebTransport sessions over QUIC connections, supporting bidirectional and unidirectional streams, datagrams, and session flow control. The library follows draft-ietf-webtrans-http3-16 and includes mechanisms for capsule-based control messages, stream error mapping, and origin checking. It is used in production by projects like Centrifugo, go-libp2p, and MediaMTX. The architecture is modular, with separate components for session management, stream maps, flow control, and capsule parsing. The server integrates with http3.Server via ConfigureHTTP3Server and provides an Upgrade method on HTTP handlers. The client offers both one-shot Dial and multi-session NewClientConn. The codebase emphasizes correctness with extensive unit and integration tests, including tests for reordering, flow control, and error handling. Key design decisions include the use of goroutines for concurrent stream acceptance and capsule processing, channel-based notification for flow control updates, and careful handling of session close to ensure streams are properly terminated. The implementation handles edge cases like stream reordering before session establishment, deadline propagation, and graceful shutdown with configurable timeouts. The repository is well-maintained with active CI, linting, and dependency management. It demonstrates strong Go engineering practices with clean interfaces, proper error handling, and comprehensive test coverage.
This repository is the official JavaScript/TypeScript client SDK for Centrifugo, a scalable real-time messaging server. It provides a robust, event-driven client (Centrifuge class) that manages persistent connections via multiple transports (WebSocket, SSE, HTTP stream, SockJS, WebTransport), handles token-based authentication and subscription authorization, and supports three subscription models: stream (standard channel), map (keyed data), and shared poll (polling with version tracking). The SDK also implements advanced features like automatic reconnection with exponential backoff, recovery from connection drops using offset/epoch, command batching for HTTP transports, and delta compression for efficient updates. The architecture is library-oriented with a clear separation of concerns: transport implementations are abstracted behind a common interface, the main client class manages connection state and dispatch ordering via a serial promise chain, and each subscription type extends a base class with its own state machine (stream, map three-phase, shared poll). The codebase is extensively tested with both unit tests (using a fake server) and integration tests against a real Centrifugo instance in Docker. The SDK is published on npm, supports CJS and ESM builds, and includes protobuf codec support. Notable patterns include a transport abstraction with dependency injection that allows easy addition of new transports, a serial dispatch chain ensuring ordered response processing, and a per-key publish debounce mechanism. The library is actively maintained with ongoing work on refactoring subscription types as documented in NEXT_MAJOR_SUBSCRIPTION_TYPES.md. The repository also demonstrates high craftsmanship in its comprehensive test coverage, graceful error handling, and careful handling of edge cases like stale tokens, network interruptions, and concurrent operations.
This is the official W3C WebTransport specification repository. It defines a JavaScript API for bidirectional, multiplexed network communication over QUIC and HTTP/3, providing reliable streams and unreliable datagrams. The repository contains the spec source in Bikeshed format (index.bs), supporting documents (explainer, use-cases, security questionnaire), and functional sample implementations (echo client/server and a WebCodecs-based video streaming demo). The core deliverable is the specification, while the samples serve as proof-of-concept implementations. The codebase is a hybrid: primarily a standards document, but includes runnable demo applications that illustrate the API usage patterns. The spec is still in early draft stage and references evolving IETF protocols.