swift-nio-http2 icon indicating copy to clipboard operation
swift-nio-http2 copied to clipboard

HTTP/2 support for SwiftNIO

Results 34 swift-nio-http2 issues
Sort by recently updated
recently updated
newest added

If a connection is quiesced remotely (by receiving a GOAWAY frame) and we attempt to open a new stream via a HEADERS frame, we receive a `NoSuchStream` error. This isn't...

kind/bug

SwiftNIOExtras offers a [`QuiescingHelper`](https://github.com/apple/swift-nio-extras/blob/main/Sources/NIOExtras/QuiescingHelper.swift) to gracefully shutdown servers. NIOHTTP2Handler should support shutting down a server connection, when the `QuiescingHelper` sends out a `ChannelShouldQuiesceEvent`: - Once `NIOHTTP2Handler` receives a `ChannelShouldQuiesceEvent` a...

We added some `@unchecked Sendable` in #343 because NIOCore hasn't fully adopted `Sendable`. We can make these regular `Sendable` when that's done.

kind/enhancement

For historical reasons, HPACKHeaders does not pay attention to order or indexability when considering equality and hashability. We should consider whether this is appropriate for this type, or whether we...

kind/bug

Motivation We've spent a long time with an unrolled Huffman-table to optimize the Huffman decoding of HPACK headers. This works well, but because of some limitations in Swift it's been...

When we receive a push promise, we first create the promised stream and then receive the frame. This is fine, but if receiving the frame produces an error (e.g. because...

When a child channel is "closed while open", we deliver any pending reads into the `Channel`: https://github.com/apple/swift-nio-http2/blob/39ed0e753596afadad920e302ae769b28f3a982b/Sources/NIOHTTP2/HTTP2StreamChannel.swift#L818-L821 After that, we actually close the stream: https://github.com/apple/swift-nio-http2/blob/39ed0e753596afadad920e302ae769b28f3a982b/Sources/NIOHTTP2/HTTP2StreamChannel.swift#L823-L829 The problem with this is...

I've been profiling large HTTP upload requests in swift-nio, and have noticed a lot of copying/allocations going on in `HTTPFrameDecoder`. Is it possible in this instance to prevent the copy...

Is there a possibility to upgrade existing HTTP/1 connection to HTTP/2 on the server side? Mozilla Doc about "Protocol Upgrade": https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Upgrade

Pseudo headers must appear at the beginning of a block of headers. However, there's no API in `HPACKHeaders` to allow for this; it requires up-front knowledge that when constructed the...

kind/enhancement