Noq: n0's new QUIC implementation in Rust
4 hours ago
- #QUIC
- #NAT Traversal
- #Multipath
- Announcement of noq (number 0 QUIC), a general-purpose QUIC implementation with multipath and NAT traversal support.
- Originally forked from Quinn due to architectural mismatches and specific needs of iroh.
- Transition from soft fork to hard fork to allow deeper structural changes without burdening Quinn maintainers.
- Key features include QUIC Multipath, NAT traversal, and QUIC Address Discovery (QAD).
- Multipath implementation allows QUIC to manage multiple paths (relay, direct IPv4, IPv6) as first-class concepts.
- NAT traversal implementation is robust and production-grade, improving reliability and congestion awareness.
- QAD replaces STUN for discovering public IP addresses, enhancing privacy and preventing protocol ossification.
- Extended QLog support for better debugging and visualization of QUIC connections, including multipath events.
- Introduction of WeakConnectionHandle for managing connections without keeping them alive unnecessarily.
- noq has been in production since iroh v0.96, with interoperability tests against picoquic.
- Future plans include further NAT traversal improvements and performance optimizations enabled by multipath.
- Invitation for collaboration with those working on QUIC implementations, p2p transport, or diverse network applications.