Skip to content

Take boxed connection ID generator factories - #2611

Merged
djc merged 1 commit into
mainfrom
monomorphic-cid-gen
Apr 17, 2026
Merged

Take boxed connection ID generator factories#2611
djc merged 1 commit into
mainfrom
monomorphic-cid-gen

Conversation

@Ralith

@Ralith Ralith commented Apr 17, 2026

Copy link
Copy Markdown
Collaborator

When we store a type-erased, boxed value internally, accepting that value directly allows users to avoid double-boxing. Probably not hugely important in this case, but we've been adopting this pattern everywhere else and we should be consistent.

When we store a type-erased, boxed value internally, accepting that
value directly allows users to avoid double-boxing. Probably not hugely
important in this case, but we've been adopting this pattern everywhere
else and we should be consistent.
@Ralith
Ralith force-pushed the monomorphic-cid-gen branch from 2123010 to 910c3ae Compare April 17, 2026 03:08
@Ralith Ralith changed the title Take connection ID generator factories by value Take boxed connection ID generator factories Apr 17, 2026
@djc
djc added this pull request to the merge queue Apr 17, 2026
Merged via the queue into main with commit 06f7f7d Apr 17, 2026
19 checks passed
@djc
djc deleted the monomorphic-cid-gen branch April 17, 2026 04:58
dignifiedquire added a commit to n0-computer/noq that referenced this pull request Apr 22, 2026
Synced up to
quinn-rs/quinn@07ce61c

Closes #602 

### Commits applied in this PR

| upstream SHA | PR | subject | noq commit |
|---|---|---|---|
| 06f7f7d | [#2611](quinn-rs/quinn#2611) |
Take boxed connection ID generator factories | `167c709c7` |
| 404db1b | [#2495](quinn-rs/quinn#2495) |
Move the ref counts out | `e6772ea9f` (bundled) |
| 4b7a039 | [#2495](quinn-rs/quinn#2495) | Fix
the (pre-existing) rightward drift by inverting conditions | `e6772ea9f`
(bundled) |
| 475b55b | [#2495](quinn-rs/quinn#2495) |
Early return in `RecvStream::drop()` | `e6772ea9f` (bundled) |
| 803c814 | [#2541](quinn-rs/quinn#2541) |
Remove `RecvStream`s from `blocked_readers` on `stop` | `e6772ea9f`
(bundled) |
| 37625fe | [#2609](quinn-rs/quinn#2609) |
quinn: fix ref count logic for ConnectionRef and EndpointRef |
`e6772ea9f` (bundled) |
| 07ce61c | [#2612](quinn-rs/quinn#2612) |
Test cleanup of connections/endpoints when all references are dropped |
`e6772ea9f` (bundled) |
| 42de9dd | [#2469](quinn-rs/quinn#2469) |
refactor(quinn-udp): extract `decode_socket_addr` helper | `2e4effbe4` |
| 4742a70 | [#2469](quinn-rs/quinn#2469) |
refactor(quinn-udp): extract `ControlMetadata` helper | `6f5904350` |
| 2964782 | [#2472](quinn-rs/quinn#2472) |
refactor(quinn-udp): split fast&slow send/recv paths | `a17058e80` |
| 459c347 | [#2549](quinn-rs/quinn#2549) | add
metric for spurious congestion events | `0c78d6435` |
| f853e5e | [#2550](quinn-rs/quinn#2550) |
fix(perf): suppress table output in JSON mode | `0155ee3f6` |
| a0ec97a | [#2463](quinn-rs/quinn#2463) |
feat(quinn-udp): make Apple fast datapath opt-in | `412dc6684` |
| bb00530 | [#2560](quinn-rs/quinn#2560) |
docs: fix book build with mdbook 0.5.2 | `98cb0ad67` |
| ee8f946 | [#2565](quinn-rs/quinn#2565) |
fix: reuse existing socket for probing GRO/GSO support | `012530527` |
| 56bba7c | [#2565](quinn-rs/quinn#2565) |
refactor: remove `gro` module | `1174207fa` |
| 04ba57c | [#2565](quinn-rs/quinn#2565) |
fix: remove opportunistic GRO syscall | `35400c04e` |
| f0905db | [#2570](quinn-rs/quinn#2570) |
docs(quinn): improve `Connection::close_reason()` documentation |
`287fd2b63` |
| 0adcd20 | [#2573](quinn-rs/quinn#2573) |
docs: clarify that `Event::ConnectionLost` is not emitted on local close
| `7f34b4517` |
| b8e4d3b | [#2572](quinn-rs/quinn#2572) |
quinn: Make Endpoint::server dual-stack V6 by default | `461fe7f28` |
| 52c7ad1 | [#2583](quinn-rs/quinn#2583) |
refactor(quinn-udp): add `retry_if_interrupted` helper | `348b91383` |
| 8acb578 | [#2584](quinn-rs/quinn#2584) |
fix(unix): disable GSO after probing | `85c022d75` |
| e01f99e | [#2571](quinn-rs/quinn#2571) |
fix: Resolve `sendmsg_x`/`recvmsg_x` via `dlsym` | `881d6f151` |
| eff5572 | [#2579](quinn-rs/quinn#2579) |
proto: send STREAMS_BLOCKED when stream limit is hit | `e64abef10` |
| dc86400 | [#2556](quinn-rs/quinn#2556) |
Introduce `max_outgoing_bytes_per_second` option | `ffe5a5474` |
| bda24fd | [#2602](quinn-rs/quinn#2602) |
Upgrade rustls-platform-verifier to 0.7 | `e4570ea71` |

### Already present in noq 

| upstream SHA | PR | subject |
|---|---|---|
| 16e1aaa | [#2511](quinn-rs/quinn#2511) | Fix
unused_mut warning from Rust 1.93 |
| e96c279 | [#2533](quinn-rs/quinn#2533) |
quinn-proto: make cids_exhausted overflow-safe on 32-bit |
| 5db36fe | [#2534](quinn-rs/quinn#2534) |
docs: fix typo in EndpointStats |
| d305440 | [#2540](quinn-rs/quinn#2540) |
Upgrade fastbloom to 0.17 |
| 57b9d0a | [#2558](quinn-rs/quinn#2558) |
fuzz: add fuzzing target for parsing transport parameters |
| 655a8ad | [#2558](quinn-rs/quinn#2558) |
proto: avoid unwrapping varint decoding during parameters parsing |
| 7f7d9ea | [#2610](quinn-rs/quinn#2610) | Fix
clippy warnings from 1.95

### Skipped 

| upstream SHA | PR | subject | reason |
|---|---|---|---|
| e5b30f5 | [#2532](quinn-rs/quinn#2532) |
quinn-udp: make ECN best-effort on Windows (Wine/Proton) | noq already
has its own Wine/Proton ECN handling using `AtomicBool`
runtime-detection (noq PR
[#414](#414)); upstream's
static-bool approach would be redundant. |
| 70d083b | [#2540](quinn-rs/quinn#2540) |
Upgrade to qlog 0.16 | noq uses its own `n0-qlog` fork with a different
API. |
| d8db7a0 | [#2599](quinn-rs/quinn#2599) |
Upgrade to qlog 0.17 | Same reason as above. |
| 41bf1db | [#2564](quinn-rs/quinn#2564) |
fix: evaluate `max_gso_segments` for every socket on Windows | noq
already tracks `max_gso_segments` per-socket on an `AtomicUsize`. |
| 905e109 | [#2599](quinn-rs/quinn#2599) |
Bump MSRV to 1.82 (for qlog -> serde_with) | noq is already at MSRV
1.88. |
| 95863af | [#2602](quinn-rs/quinn#2602) |
Bump MSRV to 1.85 (for rustls-platform-verifier) | Same reason as above.
|

---------

Co-authored-by: Benjamin Saunders <ben.e.saunders@gmail.com>
Co-authored-by: Lars Eggert <lars@eggert.org>
Co-authored-by: Fabien SAVY <fabien.savy@stormshield.eu>
Co-authored-by: Zotyamester <szatmary.zoltan1222@gmail.com>
Co-authored-by: Dirkjan Ochtman <dirkjan@ochtman.nl>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: zphrs <z@zephiris.dev>
Co-authored-by: alexchenai <alexchenai@users.noreply.github.com>
Co-authored-by: Romain Roffé <r2@kyber.media>
Co-authored-by: cong-or <conchubhar.gannon@gmail.com>
Co-authored-by: Adolfo Ochagavía <github@adolfo.ochagavia.nl>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants