Changelog

View Source

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.0] - 2026-05-28

Initial public release candidate.

Added

  • QUIC v1 transport (RFC 9000) and QUIC v2 (RFC 9369)
  • TLS 1.3 handshake via OTP ssl and crypto (RFC 9001)
  • Loss detection and congestion control (RFC 9002): CUBIC (default) and NewReno
  • Bidirectional and unidirectional streams with connection- and stream-level flow control
  • Unreliable datagrams (RFC 9221)
  • 0-RTT early data with pluggable anti-replay callback (RFC 9001 §9.2)
  • Key update (RFC 9001 §6)
  • Connection migration with path validation (RFC 9000 §9)
  • Server preferred-address migration (RFC 9000 §9.6)
  • Stateless reset with constant-time token compare (RFC 9000 §10.3)
  • Retry with HMAC-signed source-address tokens (RFC 9000 §8.1.4)
  • Anti-amplification limit, 3x per RFC 9000 §8.1
  • ECN with per-path validation (RFC 9000 §13.4, RFC 9002 §B.4)
  • DPLPMTUD search and black-hole detection (RFC 8899)
  • Library-mode API (nquic_lib): protocol exposed as pure functions over an opaque nquic:ctx()
  • Connected UDP sockets for server connections, kernel-routed
  • SO_REUSEPORT with multiple receiver processes for kernel-level load distribution
  • Striped ETS dispatch tables with atomics-based counters
  • Partitioned connection supervisors, one per scheduler
  • Session resumption with pluggable session cache backend
  • Property-based test suites backed by triq
  • Self-interop compliance suite and Docker-based interop runner against aioquic, ngtcp2, picoquic