HN
Today

Noq: n0's new QUIC implementation in Rust

The n0 team unveils noq, their new Rust-based QUIC implementation, born from a hard fork of Quinn to deeply integrate advanced networking features. It boasts full multipath support and production-grade NAT traversal, making networking more robust and efficient for projects like iroh. This story appeals to developers keen on low-level systems programming, distributed protocols, and the practical challenges of modern internet communication.

11
Score
0
Comments
#4
Highest Rank
2h
on Front Page
First Seen
Mar 19, 6:00 PM
Last Seen
Mar 19, 7:00 PM
Rank Over Time
104

The Lowdown

The n0 team has introduced noq, their custom-built QUIC implementation in Rust, designed to tackle the intricate networking demands of their iroh project. Initially a "soft fork" of Quinn, noq evolved into a distinct codebase to enable more profound architectural modifications that were specific to n0's requirements.

  • Origin Story: noq began as a close derivative of Quinn but diverged significantly due to iroh's unique needs, such as integrated multipath and NAT traversal. This led to a "hard fork," allowing for radical, targeted innovations without imposing undue burden on Quinn's general-purpose user base or maintainers.
  • Full QUIC Multipath Implementation: A cornerstone feature, noq fully implements the QUIC Multipath specification. This enables QUIC to natively manage diverse network paths (e.g., relay, direct IPv4/IPv6), eliminating the need for external workarounds and allowing for per-path congestion state management, which significantly improves latency and reliability.
  • Production-Grade NAT Traversal: noq offers a robust, production-ready implementation of the QUIC NAT traversal draft. By integrating hole-punching directly as a QUIC-level operation, it achieves cleaner, more reliable traversal, providing the QUIC congestion controller with enhanced awareness.
  • QUIC Address Discovery (QAD): The implementation incorporates QUIC Address Discovery (QAD), a feature iroh has utilized since v0.32. QAD securely learns public IP addresses, employing encrypted packets to bolster user privacy and prevent protocol ossification, a significant improvement over traditional STUN.
  • Enhanced Qlog Support: noq substantially extends qlog support, offering comprehensive debugging and visualization capabilities for QUIC connections, including specific events for multipath, which are invaluable for understanding complex network flows.
  • WeakConnectionHandle: A new API feature, WeakConnectionHandle, facilitates connection management by allowing references that do not prevent a connection from being dropped, offering flexibility for building sophisticated connection managers.
  • Production Readiness: noq has already been deployed in production as part of iroh v0.96, running across hundreds of thousands of devices, and has successfully undergone interoperability testing against picoquic.

noq represents a notable advancement in QUIC implementations, especially for applications demanding sophisticated multipath and NAT traversal capabilities. The n0 team positions noq as a long-term foundational component for future networking innovations, underscoring their commitment to ongoing development and collaborative engagement within the broader QUIC community.