This is a managed sockets connector for the System.IO.Pipelines
API, intended to act as a stop-gap while there is
no official such connector. Pipelines are pretty useless if you can't actually connect them to anything...
It draws inspiration from:
Channels.Networking.Sockets
- the original "managed sockets" provider I wrote back when Pipelines were ChannelsSystem.IO.Pipelines
- the "corefx" version of the aboveKestrel.Transport.Sockets
- purely server-side connector used for ASP.NET Core, using pieces of the aboveand aims to provide a high-performance implementation of the IDuplexPipe
interface, providing both client and server APIs. At the moment the API is very preliminary.
Key APIs:
SocketConnection
- interacting with a Socket
as a pipeStreamConnection
- interacting with a Stream
as a pipe, or a pipe as a Stream
Arena
/ Arena<T>
/ Sequence<T>
/ Reference<T>
- arena allocation APIsIt is provided under the MIT license.