Skip to content

v1.7.78

Choose a tag to compare

@github-actions github-actions released this 10 Jul 13:52

Per-stream send priority (quinn SendStream::set_priority parity) — #191, PR #243

  • Server.setStreamPriority(conn, stream_id, priority: i32) / Client.setStreamPriority(stream_id, priority: i32) — default 0, higher drains first, 0 clears the entry.
  • Priority-aware pending-send drain (both sides): strictly descending priority tiers; within a tier, arrival order with one chunk per entry per pass (equal-priority streams round-robin exactly as before). With no priorities set the drain order is byte-identical to the previous FIFO.
  • #236 compatibility: markStreamPriority / unmarkStreamPriority remain as shims (set 1 / clear). The pending-send byte-budget headroom now keys on priority > 0; negative priorities order below default without claiming the gossip headroom.
  • Shared caps unchanged: per-drive send budget + per-call cap span all tiers; CC/pacer block aborts the drain as before; FC-blocked higher-tier entries are never double-sent on lower passes.

For libp2p embedders: give the persistent /meshsub gossip stream (or any control stream) a positive priority and bulk blocks_by_range responses can no longer delay it in the egress queue — previously only the byte budget was protected (#236), not the drain order.

CI: both PR interop gates green. 299/300 unit tests (+3 new; 1 pre-existing skip), including a loopback ordering proof.