Skip to content

0.5.0

Pre-release
Pre-release

Choose a tag to compare

@tfpauly tfpauly released this 15 Oct 23:47
· 79 commits to main since this release
cd6339a

What's Changed

SemVer Major

  • Protocol Stack Refactor by @tfpauly in #165
  • DataTransfer: expose snapshot and establishment report APIs publicly by @rpaulo in #189
  • Move fields from Endpoint class to EndpointCommon struct by @tfpauly in #205
  • SwiftQUIC: Add event for QUICPath assigned by @agnosticdev in #178
  • Make the value-typed protocol options Sendable by @rnro in #213
  • Turn Endpoint into a sendable struct by @tfpauly in #240
  • Make the QUIC options value types by @rnro in #257

SemVer Minor

  • Define parameter to opt out of local network usage by @tfpauly in #172
  • TCP: add TCP protocol configuration and options access by @rpaulo in #188
  • Expose direct interface on path properties by @tfpauly in #193
  • Make EndpointFlow a non-copyable struct by @tfpauly in #195
  • Route writes to the protocol options through scoped calls by @rnro in #239
  • Make IPv4Address/IPv6Address raw values and IPv4-mapped accessors public by @kpodosin in #243

SemVer Patch

  • SwiftQUIC: PERF Reduce exclusivity checks for building outbound stream frames by @agnosticdev in #176
  • SwiftQUIC: PERF: Reduce Exclusivity on the Inbound path by @agnosticdev in #174
  • Update private network context storage by @tfpauly in #186
  • QUIC: fix DCID reassignment on connection ID rotation by @josephnoir in #180
  • Endpoint: make matchesPattern stricter about pattern types by @kpodosin in #203
  • QUIC: don't prefetch a datagram batch when sending on a non-current path by @kkuk24 in #194
  • Fix flakiness in testQUICConnectionIdleTracksOwedAck by @tfpauly in #207
  • QUIC: fix congestion control state loss on ECN and background switches by @rpaulo in #210
  • Fix stateless reset response size by @josephnoir in #187
  • SwiftQUIC: ACK timer aborts with an exclusivity conflict when it sends a PMTUD probe by @agnosticdev in #208
  • EndpointFlowExtension: route bridged TCP flows through user IP stack by @rpaulo in #209
  • Make FramePadding.countLeadingZeroBytes faster by @MahdiBM in #190
  • Create the header protection cryptor once per key by @rnro in #198
  • Encode HKDF labels in temporary storage by @rnro in #199
  • SwiftQUIC: PERF: Move CongestionControl state to a common struct by @agnosticdev in #204
  • Keep retained capacity in FrameArray.add(frames:) by @rnro in #196
  • Seal and open packets through CryptoKit's span API where the OS has it by @rnro in #197
  • Dispatch immediate tasks without a work item by @rnro in #200
  • Sum checksum16 in 64-byte blocks with an add-with-carry chain by @rnro in #224
  • Code inlining by @rnro in #192
  • Store a sent packet's first stream send inline by @rnro in #201
  • Fix nightly-main build: guard versioned canImport(CryptoKit) checks by @deadcaf3 in #226
  • Update Swift versions and one trunk flag on CI by @finagolfin in #228
  • Add Android support by @finagolfin in #222
  • Fix fuzzer compilation in release builds by @tfpauly in #233
  • Keep QUIC frame handlers out of processFrame's stack frame by @rnro in #237
  • TransportParameters: use NetworkDuration for ack delay parameters by @rpaulo in #235
  • SwiftQUIC: PERF: Change pipeAckSamples to an InlineArray by @agnosticdev in #236
  • QUIC: scale received ACK delay by the peer's ack_delay_exponent by @deadcaf3 in #214
  • TransportParameters: enforce RFC 9000 decoding validation by @rpaulo in #238
  • Don't drop a datagram when it can't be sent because it won't fit by @holleman in #161
  • RTT: fix base RTT rollover timestamp not advancing by @rpaulo in #245
  • QUIC: cap queued RETIRE_CONNECTION_ID frames by @deadcaf3 in #218
  • Fix client hang when server closes during handshake by @josephnoir in #182
  • Mock clock by @rnro in #191
  • RTT: align base history interval boundaries to fixed steps by @rpaulo in #248
  • CongestionControl: fix spurious loss recovery undo by @rpaulo in #244
  • Detect incomplete IPUDPTransfer datagrams by @danielsyauqi in #251
  • SwiftQUIC: PERF: Create a reusable scratch buffer to run xor operations by @agnosticdev in #253
  • SwiftQUIC: PERF: Reduce Memory Layout of QUICStreamInstance by 20% by @agnosticdev in #247
  • Update IPv4Address/IPv6Address string parsing by @kpodosin in #246

Other Changes

  • Fuzzing: add libFuzzer targets for QUIC packet and transport parameter parsing by @rpaulo in #147
  • Fix testQUICEcho1MiBAckBundling build after the handler became `Sen… by @rnro in #225
  • Bump actions/cache from 4 to 6 by @dependabot[bot] in #221
  • Bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #220
  • Bump apple/swift-nio/.github/actions/pull_request_semver_label_checker from 2.103.0 to 2.104.0 by @dependabot[bot] in #254

New Contributors

Full Changelog: 0.4.0...0.5.0