You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We previously developed an async API for NIO HTTP/2 which was guarded under SPI. Now that the swift-nio async API is released we can reintroduce this code promoted to SPI.
This change introduces:
* `AsyncStreamMultiplexer` - an async variant of the HTTP/2 stream multiplexer which can be used to create outbound streams and provide access to an async sequence (`NIOHTTP2AsyncSequence`) of inbound streams
* New pipeline configuration functions (e.g. `configureAsyncHTTP2Pipeline`) to support the new async mode
/// A variant of `NIOHTTP2Handler.StreamMultiplexer` which creates a child channel for each HTTP/2 stream and
217
+
/// provides access to inbound HTTP/2 streams.
218
+
///
219
+
/// In general in NIO applications it is helpful to consider each HTTP/2 stream as an
220
+
/// independent stream of HTTP/2 frames. This multiplexer achieves this by creating a
221
+
/// number of in-memory `HTTP2StreamChannel` objects, one for each stream. These operate
222
+
/// on ``HTTP2Frame/FramePayload`` objects as their base communication
223
+
/// atom, as opposed to the regular NIO `SelectableChannel` objects which use `ByteBuffer`
224
+
/// and `IOData`.
225
+
///
226
+
/// Inbound (remotely-initiated) streams are accessible via the ``inbound`` property, having been initialized and
227
+
/// returned as the `InboundStreamOutput` type.
228
+
///
229
+
/// You can open a stream by calling ``openStream(_:)``. Locally-initiated stream channel objects are initialized upon creation using the supplied `initializer` which returns a type
230
+
/// `Output`. This type may be `HTTP2Frame` or changed to any other type.
0 commit comments