版本发布 8
## What's Changed * quinn: Remove explicit write future structs by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2226 * proto: Make BytesSource private by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2233 * feat: Make the future returned by `SendStream::stopped` static by @Frando in https://github.com/quinn-rs/quinn/pull/2220 * refactor(quinn): Remove some usage of execute_poll by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2232 * Fix false positive GSO detection by @inetic in https://github.com/quinn-rs/quinn/pull/2248 * expose `Connection::side()` in `quinn` by @abonander in https://github.com/quinn-rs/quinn/pull/2261 * refactor(quinn): Configure out `async_io::UdpSocket` when unused by @matheus23 in https://github.com/quinn-rs/quinn/pull/2264 * proto: upgrade to rustls-platform-verifier 0.6 by @djc in https://github.com/quinn-rs/quinn/pull/2276 * Don't violate client CID limits when advertising a preferred address by @Ralith in https://github.com/quinn-rs/quinn/pull/2282 * Various enhancement to quinn perf by @stormshield-damiend in https://github.com/quinn-rs/quinn/pull/2279 * Updated quinn::Connection::send_datagram() docs by @gry8t in https://github.com/quinn-rs/quinn/pull/2284 * Collect qlog recovery metrics by @stormshield-fabs in https://github.com/quinn-rs/quinn/pull/2278 * proto: Add option to pad all application data packets to MTU by @FlorianUekermann in https://github.com/quinn-rs/quinn/pull/2274 * Update to socket2 v0.6 by @Thomasdezeeuw in https://github.com/quinn-rs/quinn/pull/2291 * Upgrade to fastbloom 0.12 by @djc in https://github.com/quinn-rs/quinn/pull/2290 * Fix flaky key update test by @Ralith in https://github.com/quinn-rs/quinn/pull/2292 * chore(Cargo.toml): support both socket2 v0.5 and v0.6 by @mxinden in https://github.com/quinn-rs/quinn/pull/2294 * Tiny clean up of a comment that was in the wrong place by @flub in https://github.com/quinn-rs/quinn/pull/2306 * Do not track lost_packets twice by @flub in https://github.com/quinn-rs/quinn/pull/2308 * proto: fix NewConnectionId size bound by @djc in https://github.com/quinn-rs/quinn/pull/2311 * Configure qlog in TransportConfig by @Ralith in https://github.com/quinn-rs/quinn/pull/2305 * Wake endpoint driver on rebind by @Ralith in https://github.com/quinn-rs/quinn/pull/2325 * Check for in-flight data on-demand by @Ralith in https://github.com/quinn-rs/quinn/pull/2326 * Fix in-flight byte count underflow by @Ralith in https://github.com/quinn-rs/quinn/pull/2319 * build(deps): bump criterion from 0.6.0 to 0.7.0 by @dependabot[bot] in https://github.com/quinn-rs/quinn/pull/2330 * build(deps): bump windows-sys from 0.59.0 to 0.60.2 by @dependabot[bot] in https://github.com/quinn-rs/quinn/pull/2332 * docs(quinn): Revise SendStream::write docs by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2227 * Improve quinn::ConnectionStats docs by @gry8t in https://github.com/quinn-rs/quinn/pull/2340 * Various enhancement for perf binaries by @stormshield-damiend in https://github.com/quinn-rs/quinn/pull/2342 * Perf/Bench enhancement by @stormshield-damiend in https://github.com/quinn-rs/quinn/pull/2352 * feat: add `Connection::set_send_window()` by @abonander in https://github.com/quinn-rs/quinn/pull/2268 * perf: add max udp payload size option by @Dreamacro in https://github.com/quinn-rs/quinn/pull/2343 * perf: move client and server on one binary by @Dreamacro in https://github.com/quinn-rs/quinn/pull/2354 * perf: rename perf binary to quinn-perf to prevent name clash with linux perf by @stormshield-damiend in https://github.com/quinn-rs/quinn/pull/2360 * Ignore async-std advisory for now by @djc in https://github.com/quinn-rs/quinn/pull/2362 * Upgrade to fastbloom 0.14 by @djc in https://github.com/quinn-rs/quinn/pull/2363 * Catch EOPNOTSUPP for opportunistic socket flags by @gongy in https://github.com/quinn-rs/quinn/pull/2273
## What's Changed * chore(Cargo.toml): support both socket2 v0.5 and v0.6 by @mxinden in https://github.com/quinn-rs/quinn/pull/2294 * Update to socket2 v0.6 by @Thomasdezeeuw in https://github.com/quinn-rs/quinn/pull/2291 * Catch EOPNOTSUPP for opportunistic socket flags by @gongy in https://github.com/quinn-rs/quinn/pull/2273 * build(deps): bump windows-sys from 0.59.0 to 0.60.2 by @dependabot in https://github.com/quinn-rs/quinn/pull/2332
## What's Changed * Fix false positive GSO detection by @inetic in https://github.com/quinn-rs/quinn/pull/2248 * chore(udp): increase patch version to v0.5.13 by @mxinden in https://github.com/quinn-rs/quinn/pull/2270
Fixes #2221. ## What's Changed * Add `TokenMemoryCache` by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2137 * Add `BloomTokenLog` by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2136 * Makes poll_read_buf public by @Kannen in https://github.com/quinn-rs/quinn/pull/2161 * Fix minor inter-version build issues by @Ralith in https://github.com/quinn-rs/quinn/pull/2162 * refactor: move sending path_challenge to its own function by @divagant-martian in https://github.com/quinn-rs/quinn/pull/2165
## What's Changed * fix: respecting max_datagrams in poll_transmit by @filipe-cantarelli in https://github.com/quinn-rs/quinn/pull/2185 * docs: update document with example code separated by @kota-yata in https://github.com/quinn-rs/quinn/pull/2191 * build(deps): bump socket2 from 0.5.8 to 0.5.9 by @dependabot in https://github.com/quinn-rs/quinn/pull/2194 * quinn-udp: handle EMSGSIZE in a common place by @thomaseizinger in https://github.com/quinn-rs/quinn/pull/2199 * quinn-udp: refactor control-flow in `send` and `recv` impls by @thomaseizinger in https://github.com/quinn-rs/quinn/pull/2200 * fix(quinn-udp): move cmsg-len check to Iterator by @thomaseizinger in https://github.com/quinn-rs/quinn/pull/2208 * fix(udp): zero control message array on fast-apple-datapath by @mxinden in https://github.com/quinn-rs/quinn/pull/2216 * fix(quinn-udp): sanitise `segment_size` by @thomaseizinger in https://github.com/quinn-rs/quinn/pull/2217
## What's Changed * Prefer sending extra ping again by @flub in https://github.com/quinn-rs/quinn/pull/2172 * fix: Do not produce tail-loss probes larger than segment size by @flub in https://github.com/quinn-rs/quinn/pull/2167 * Avoid inference hazard for integer comparisons by @djc in https://github.com/quinn-rs/quinn/pull/2188 * fix: respecting max_datagrams in poll_transmit by @filipe-cantarelli in https://github.com/quinn-rs/quinn/pull/2185 * Bump the quinn-proto version to 0.11.11 for release by @faern in https://github.com/quinn-rs/quinn/pull/2209
## What's Changed * feat: Allow changing the UDP send/receive buffer sizes by @larseggert in https://github.com/quinn-rs/quinn/pull/2179
Fixes potential issues building rustls-platform-verifier 0.4.x with rustls 0.23.24 and newer by upgrading to rustls-platform-verifier 0.5.x. Also contains a large number of small bug fixes and improvements and (hopefully) fixes the broken docs on docs.rs. We added @gretchenfrage as a maintainer, thanks for all your contributions so far and hope for many more! ## What's Changed * Avoid FIPS in docs.rs builds by @djc in https://github.com/quinn-rs/quinn/pull/2040 * chore(ci): Remove workaround for broken `cc` version by @matheus23 in https://github.com/quinn-rs/quinn/pull/2044 * Account for probe size limits before coalescing by @Ralith in https://github.com/quinn-rs/quinn/pull/2046 * chore: Fix `cargo clippy` issues by @larseggert in https://github.com/quinn-rs/quinn/pull/2051 * Allow Unicode 3.0 license by @djc in https://github.com/quinn-rs/quinn/pull/2059 * Improve time accounting for Incoming by @Ralith in https://github.com/quinn-rs/quinn/pull/2055 * docs: Correct MSRV in README by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2060 * #2057: Use randomly generated GREASE transport parameter. by @mstyura in https://github.com/quinn-rs/quinn/pull/2058 * Bump MSRV to 1.71 by @djc in https://github.com/quinn-rs/quinn/pull/2068 * proto: split config module by @djc in https://github.com/quinn-rs/quinn/pull/2067 * #2057: Shuffle outgoing transport parameters. by @mstyura in https://github.com/quinn-rs/quinn/pull/2066 * Use `Async::new_nonblocking` to avoid redundant socket configuration by @BigWingBeat in https://github.com/quinn-rs/quinn/pull/2077 * feat(quinn-proto): unhide `quinn_proto::coding` by @dignifiedquire in https://github.com/quinn-rs/quinn/pull/2078 * tests(quinn): Ignore stress tests by default by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2075 * Minor style changes by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2081 * Fix CI by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2082 * quinn: Remove obsolete must_use for futures by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2087 * docs(quinn): Tweak Connecting docs by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2088 * Adjust terminology regarding tokens by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2086 * Gate PLPMTUD should_panic test on debug_assertions by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2091 * proto: Refactor TokenDecodeError by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2085 * proto: Connection side enum by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2084 * Make SystemTime mockable via object by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2089 * Factor out `IncomingToken` by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2094 * proto: replace hidden field with From impl by @djc in https://github.com/quinn-rs/quinn/pull/2099 * Implement Default for ClosedStream by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2103 * Un-hide get_max_udp_payload_size by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2102 * quinn: Make SendStream::poll_stopped private by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2100 * Token tweaks by @djc in https://github.com/quinn-rs/quinn/pull/2098 * Un-hide force_key_update / initiate_key_update by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2101 * Unhide ecn variants by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2105 * proto: Remove superfluous `#[doc(hidden)]` fuzzing by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2104 * proto: Pass `SocketAddr` by value by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2107 * proto: Refactor Endpoint::handle by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2106 * Remove `use self::` occurrences by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2108 * Remove various obselete `allow` directives by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2113 * build(deps): update rustls-platform-verifier requirement from 0.4 to 0.5 by @dependabot in https://github.com/quinn-rs/quinn/pull/2115 * proto: Minor refactors to `Endpoint.handle` by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2112 * proto: Pass `ConnectionId` by value internally by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2109 * proto: Token encode refactors by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2110 * proto: Reduce size of `Endpoint.handle` by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2116 * Add gretchenfrage as a maintainer by @djc in https://github.com/quinn-rs/quinn/pull/2117 * proto: remove redundant cursors by @Ralith in https://github.com/quinn-rs/quinn/pull/2119 * proto: Replace calls to Duration::new by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2120 * tests: avoid ICE in beta by @djc in https://github.com/quinn-rs/quinn/pull/2131 * fix(.github/codecov): Ignore aws-lc-rs-fips for codecov by @dongcarl in https://github.com/quinn-rs/quinn/pull/2023 * feat(quinn,quinn-udp): Avoid `socket2` and `std::net::UdpSocket` dependencies in `wasm32-unknown-unknown` target by @matheus23 in https://github.com/quinn-rs/quinn/pull/2037 * Simplify weirdly broken test code by @djc in https://github.com/quinn-rs/quinn/pull/2134 * Utilize NEW_TOKEN frames by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/1912 * test(proto): Fix wasm CI by @gretchenfrage in https://github.com/quinn-rs/quinn/pull/2139 * fix(quinn): `impl tokio::io::AsyncWrite for SendStream` by @matheus23 in https://github.com/quinn-rs/quinn/pull/2141 * Allow the NCSA license by @djc in https://github.com/quinn-rs/quinn/pull/2148 * Upgrade to rand 0.9 by @djc in https://github.com/quinn-rs/quinn/pull/2144 * add test for retry token expired by @yohachiSuga in https://github.com/quinn-rs/quinn/pull/2149 * Remove use of Instant::now() in BBR bandwidth estimation code by @recatek in https://github.com/quinn-rs/quinn/pull/2157 * Clippy 1.85, 2024 style by @djc in https://github.com/quinn-rs/quinn/pull/2159 * Makes poll_read_buf public by @Kannen in https://github.com/quinn-rs/quinn/pull/2161 * Fix minor inter-version build issues by @Ralith in https://github.com/quinn-rs/quinn/pull/2162 * refactor: move sending path_challenge to its own function by @divagant-martian in https://github.com/quinn-rs/quinn/pull/2165 * Minor TLP composition improvements by @Ralith in https://github.com/quinn-rs/quinn/pull/2169