Skip to content

Releases: n0-computer/noq

v1.1.0

Choose a tag to compare

@ramfox ramfox released this 20 Jul 20:01

1.1.0 - 2026-07-20

⛰️ Features

  • (noq) Introduce noq::Connection::authenticated - (3e926fa)
  • (proto) Allow ProtectedHeader::decode to use a generic reference - (8f80192)
  • (proto) Use path idle timeout for validation when opening a new path (#721) - (b570682)
  • (proto) Make Connection::poll_timeout immutable - (a17cb24)
  • (udp) Implement kernel receive timestamps on Linux/Android - (b454d17)

πŸ› Bug Fixes

  • (noq) Handle overdue timers without polling the async timer - (f165c03)
  • (proto) Congestion: avoid double-reducing CUBIC fast convergence - (4cfbafa)
  • (proto) Congestion: preserve excess CUBIC cwnd increment - (6039c93)
  • (proto) Set loss detection timer on path validation failure - (f847bb0)
  • (proto) Avoid double-emitting Draining event, causing an active_connections underflow (#748) - (883ca63)
  • (proto) Fix coalescing loop to avoid coalescing in Initial space (#747) - (0a445dd)
  • (proto) Reject DATAGRAMs larger than the send buffer - (1e8a5a9)
  • (proto) Use binary search in ArrayRangeSet - (ba90d78)
  • (proto) Drop Initials silently when saturated - (f2968cf)
  • (readme) Use correct crates.io badge link in README.md (#756) - (ab91554)
  • (udp) Log sendmsg errors on debug (#759) - (603c5e6)
  • (proto) Deprecate UdpStats::ios as io-operations can't be measured from this crate (#725) - (d6e525d41)
  • Patches for Redox targets - (5c05d21)

🚜 Refactor

  • (noq) Use let-else in drive_timer - (ef3fce8)
  • (proto) Make state.rs handle emitting events instead of callers (#753) - (22fbed2)
  • (udp) Extract linux module - (0fcc14b)
  • (udp) Extract apple_fast module - (2cc4e3f)

πŸ“š Documentation

  • (noq) Expand RecvStream::is_0rtt docs - (497973c)
  • (noq) Document SendStream::stopped for detecting 0-RTT rejection - (7e2de91)
  • (proto) Tweak Window docstrings - (4586890)
  • (udp) Clean up docstrings - (1411814)

πŸ§ͺ Testing

  • (noq) Improve 0-RTT integration test - (190ef12)
  • (proto) Implement bandwidth-limited routing (#720) - (41cbdbe)

βš™οΈ Miscellaneous Tasks

  • (ci) Fix docs cleanup job (#751) - (d0456ce)
  • (proto) Apply suggestions from clippy 1.96 - (ccfad4d)
  • (proto) Demote error! log to debug! log (#741) - (bbfd024)
  • Update for rust 1.97 (#745) - (21eea63)
  • Improve semver checks for stable releases (#734) - (9663986)
  • Add more guidance on llm use (#752) - (b6b47f1)
  • Run daily CI jobs 2 hours earlier (#758) - (403ce63)
  • Improve CONTRIBUTING.md (#761) - (193b807)
  • Remove version number from noq dependency in the docs/book - (14853b4)
  • Update proto and udp dependency versions in noq. - (474d034)
  • Release - (92a164e)

v1.0.1

Choose a tag to compare

@dignifiedquire dignifiedquire released this 29 Jun 09:42

πŸ› Bug Fixes

  • (migration) Do not update local_ip for probing packets (#715) - (af0fa65)
  • (noq-udp) Set Windows ioctls to suppress ICMP errors on recv (#707) - (5a0d249)
  • (proto) Move pending path responses to PacketNumberSpace (#708) - (b9b9fcf)
  • (proto) Ignore PATH_CIDS_BLOCKED when it refers to abandoned paths (#710) - (8ca5916)
  • (proto) Use correct info in retransmission of *_BLOCKED frames (#716) - (147892a)
  • (proto) Avoid active_connections underflow (#717) - (32467e4)
  • (proto) ObservedAddr retransmission by creating a path-specific retransmittable data queue (#705) - (c37f064)
  • (proto) Improve queuing and sending of OBSERVED_ADDR frames (#722) - (4b7a6e1)
  • (proto) Ensure stats reported in Discarded events are updated (#728) - (288323b)

🚜 Refactor

  • (multipath) Track OpenStatus on PacketNumberSpace (#711) - (abdd49b)
  • (qnt) Higher priority for add and remove address frames (#709) - (611ecf3)

βš™οΈ Miscellaneous Tasks

  • (ci) Enable merge queue trigger for patchay tests - (854eebd)

v1.0.0

Choose a tag to compare

@dignifiedquire dignifiedquire released this 15 Jun 09:22

⛰️ Features

  • (proto) Implement backoff for on-path path challenges (#676) - (ba24e6b)

πŸ› Bug Fixes

  • (bbr3) Call on_packet_sent when ACK-eliciting data is sent (#689) - (9eb1729)
  • (multipath) Store abandoned paths in ArrayRangeSet (#691) - (9764042)
  • (multipath) Ignore PATH_RESPONSE once the path is abandoned (#700) - (cc44e08)
  • (noq-proto) Never emit PathEvent::Established after a path has been abandoned (#695) - (000e1bb)
  • (proto) Prevent PATH_CHALLENGE/RESPONSE from being sent in datagrams that can't be expanded (#699) - (6c5e246)
  • (qlog) Avoid another panic for an invariant (#702) - (8c712cd)
  • (quic) Tail-loss probes in Initial space must be padded (#698) - (2a342d1)

🚜 Refactor

  • (logging) Improve Display of PATH_ABANDON frame (#706) - (16805f8)
  • (proto) Simplify AddressDiscovery::Role (#693) - (7ae29bd)
  • (tests) Do not use so many star imports (#677) - (c706ab2)
  • (tests) Do not allow dead code by default (#678) - (7d5f1ab)
  • (tests) Introduce ConnPairBuilder (#680) - (33dba68)

πŸ§ͺ Testing

  • (proto) Take Transmit::src_ip into account for ManyToManyRouting (#673) - (616dc26)
  • (proto) Add failing proptest seed from CI (#609) - (cf013f8)
  • Add tests for easy-hard NAT combinations (#685) - (cc8822e)

Deps

v.1.0.0-rc.0

Choose a tag to compare

@dignifiedquire dignifiedquire released this 07 May 09:30

⛰️ Features

  • (noq) [breaking] Return Closed struct from Connection::on_closed with path stats (#617) - (3fc2e28)
  • (proto) Accept off-path probe packets (#608) - (4a310f7)
  • (proto) Replace BBR with BBRv3 + breaking Controller API changes (#611) - (0ac6b46)
  • (proto) Client-side off-path nat traversal (#614) - (98e626f)
  • (proto) [breaking] Set default max concurrent multipath paths to 8 (instead of 12) (#620) - (a60749c)
  • (proto) [breaking] Rename NAT traversal config and expose multipath default value (#621) - (e25d7dd)
  • (proto) Send NAT probes with off-path PATH_RESPONSE (#619) - (058aaab)
  • (proto) Better NAT probe retry intervals (#623) - (262697c)
  • (quinn-udp) Make Apple fast datapath opt-in - (f52aa14)
  • (tests) Add a router with NAT functionality to proto tests (#596) - (b7e2317)
  • Make negotiated_key_exchange_group always available (#633) - (fe19376)

πŸ› Bug Fixes

  • (noq-proto) Do not recreate path state for already abandonend paths (#631) - (8c353b8)
  • (perf) Suppress table output in JSON mode - (72400f3)
  • (proto) Use approximate comparison for network paths (#635) - (9e1f1ad)
  • (qlog) Emit RTT values in milliseconds (#639) - (c904e92)
  • (unix) Disable GSO after probing - (bee7381)
  • Reuse existing socket for probing GRO/GSO support - (db87183)
  • Remove opportunistic GRO syscall - (dfa247c)
  • Resolve sendmsg_x/recvmsg_x via dlsym - (c435c08)
  • Gate perf Path import on json-output + restore deny.toml entries - (79b20f4)

🚜 Refactor

  • (noq) Atomic path ref counts (#626) - (c64cf98)
  • (noq-proto) [breaking] Get ring and aws_lc_rs out of public API (#640) - (437d0c1)
  • (proto) Improve state of off-path nat probes (#600) - (0c0e020)
  • (proto) Raise limit of path responses kept around per PathData (#622) - (a49f066)
  • (proto) Introduce CanonicalIpPort to fix IP canonicalization issues (#629) - (c711967)
  • (proto) Do not log as error (#632) - (7ce9294)
  • (proto) Remove some obsolete warnings (#634) - (d5a09ef)
  • (quinn-udp) Extract decode_socket_addr helper - (fe9e1e7)
  • (quinn-udp) Extract ControlMetadata helper - (a22790d)
  • (quinn-udp) Split fast&slow send/recv paths - (6127c0f)
  • (quinn-udp) Add retry_if_interrupted helper - (609ddba)
  • Remove gro module - (5ec5e64)
  • [breaking] Cleanup single path based expectations (#616) - (fd36bc5)
  • [breaking] Return previous path status from Path::set_status (#638) - (1facdd9)
  • Rename write_chunk to write_bytes and write_chunks to write_bytes_many (#536) - (f4ec777)
  • Rename read_chunk to read_bytes and make it return just a Bytes (#535) - (a0f988a)

πŸ“š Documentation

  • (quinn) Improve Connection::close_reason() documentation - (1fdd690)
  • Fix book build with mdbook 0.5.2 - (bd83f7e)
  • Clarify that Event::ConnectionLost is not emitted on local close - (476c7bc)

βš™οΈ Miscellaneous Tasks

  • (clippy) Fix clippy and cargo-deny for new rust release (#597) - (d64959b)
  • (docs) Improve docs of PacketNumberSpace vs PathData a little (#598) - (c13d711)
  • Run iroh's patchbay tests in CI (#601) - (7d73657)
  • Add semver check (#605) - (2e1739d)
  • Bump rustls-webpki to 0.103.13 (RUSTSEC-2026-0104) - (93a2710)
  • Clean up stale deny.toml entries (unused license/skips) - (8a8119b)
  • Sync with quinn@main (#606) - (877dcca)
  • Reexport all public noq-proto types at noq level (#615) - (ecd08ae)
  • Fail cargo-make flows for warnings (#624) - (ee806ab)
  • Change deps to be more explicit - (307adcd)

noq-proto

  • Send STREAMS_BLOCKED when stream limit is hit (#2579) - (cd3c8c7)

noq

  • Move ConnectionRef/EndpointRef ref counts onto Shared as AtomicUsize - (c1d7ed2)
  • Make Endpoint::server dual-stack V6 by default - (ef2be07)

v0.18.0

Choose a tag to compare

@dignifiedquire dignifiedquire released this 15 Apr 12:46
noq-v0.18.0

chore: Release noq version 0.18.0