├── .gitattributes
├── .gitignore
├── .nuget
└── NuGet.Config
├── .vscode
├── launch.json
└── tasks.json
├── CONTRIBUTING.MD
├── Directory.Build.targets
├── DotNetty.sln
├── DotNetty.sln.DotSettings
├── DotNetty.snk
├── LICENSE.txt
├── README.md
├── RELEASE_NOTES.md
├── SECURITY.md
├── ThirdPartyNotices.txt
├── after.DotNetty.sln.targets
├── appveyor.yml
├── build.cake
├── build.ps1
├── build.sh
├── examples
├── Discard.Client
│ ├── Discard.Client.csproj
│ ├── DiscardClientHandler.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── appsettings.json
├── Discard.Server
│ ├── Discard.Server.csproj
│ ├── DiscardServerHandler.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── appsettings.json
├── Echo.Client
│ ├── Echo.Client.csproj
│ ├── EchoClientHandler.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── appsettings.json
├── Echo.Server
│ ├── Echo.Server.csproj
│ ├── EchoServerHandler.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── appsettings.json
├── Examples.Common
│ ├── ClientSettings.cs
│ ├── ExampleHelper.cs
│ ├── Examples.Common.csproj
│ └── ServerSettings.cs
├── Factorial.Client
│ ├── ClientSettings.cs
│ ├── Factorial.Client.csproj
│ ├── FactorialClientHandler.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── appsettings.json
├── Factorial.Server
│ ├── Factorial.Server.csproj
│ ├── FactorialServerHandler.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── appsettings.json
├── Factorial
│ ├── BigIntegerDecoder.cs
│ ├── Factorial.csproj
│ ├── NumberEncoder.cs
│ └── Properties
│ │ └── AssemblyInfo.cs
├── HttpServer
│ ├── HelloServerHandler.cs
│ ├── HttpServer.csproj
│ ├── MessageBody.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── appsettings.json
├── QuoteOfTheMoment.Client
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── QuoteOfTheMoment.Client.csproj
│ ├── QuoteOfTheMomentClientHandler.cs
│ └── appsettings.json
├── QuoteOfTheMoment.Server
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── QuoteOfTheMoment.Server.csproj
│ ├── QuoteOfTheMomentServerHandler.cs
│ └── appsettings.json
├── SecureChat.Client
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── SecureChat.Client.csproj
│ ├── SecureChatClientHandler.cs
│ └── appsettings.json
├── SecureChat.Server
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── SecureChat.Server.csproj
│ ├── SecureChatServerHandler.cs
│ └── appsettings.json
├── Telnet.Client
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Telnet.Client.csproj
│ ├── TelnetClientHandler.cs
│ └── appsettings.json
├── Telnet.Server
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Telnet.Server.csproj
│ ├── TelnetServerHandler.cs
│ └── appsettings.json
├── UWPEcho.Client
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Assets
│ │ ├── LockScreenLogo.scale-200.png
│ │ ├── SplashScreen.scale-200.png
│ │ ├── Square150x150Logo.scale-200.png
│ │ ├── Square44x44Logo.scale-200.png
│ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ │ ├── StoreLogo.png
│ │ └── Wide310x150Logo.scale-200.png
│ ├── EchoClientHandler.cs
│ ├── MainPage.xaml
│ ├── MainPage.xaml.cs
│ ├── Package.appxmanifest
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── Default.rd.xml
│ ├── StreamSocketChannel.cs
│ ├── UWPEcho.Client.csproj
│ ├── UWPEcho.Client.sln
│ ├── UWPEcho.Client_TemporaryKey.pfx
│ ├── UWPPlatform.cs
│ ├── project.json
│ └── readme.md
├── WebSockets.Client
│ ├── Program.cs
│ ├── WebSocketClientHandler.cs
│ ├── WebSockets.Client.csproj
│ └── appsettings.json
└── WebSockets.Server
│ ├── Program.cs
│ ├── WebSocketServerBenchmarkPage.cs
│ ├── WebSocketServerHandler.cs
│ ├── WebSockets.Server.csproj
│ └── appsettings.json
├── shared
├── contoso.com.pfx
└── dotnetty.com.pfx
├── src
├── Directory.Build.props
├── DotNetty.Buffers
│ ├── AbstractByteBuffer.cs
│ ├── AbstractByteBufferAllocator.cs
│ ├── AbstractDerivedByteBuffer.cs
│ ├── AbstractPooledDerivedByteBuffer.cs
│ ├── AbstractReferenceCountedByteBuffer.cs
│ ├── AbstractUnpooledSlicedByteBuffer.cs
│ ├── AdvancedLeakAwareByteBuffer.cs
│ ├── AdvancedLeakAwareCompositeByteBuffer.cs
│ ├── ByteBufferUtil.cs
│ ├── ByteOrder.cs
│ ├── CompositeByteBuffer.cs
│ ├── DefaultByteBufferHolder.cs
│ ├── DotNetty.Buffers.csproj
│ ├── EmptyByteBuffer.cs
│ ├── HeapByteBufferUtil.cs
│ ├── IByteBuffer.cs
│ ├── IByteBufferAllocator.cs
│ ├── IByteBufferAllocatorMetric.cs
│ ├── IByteBufferAllocatorMetricProvider.cs
│ ├── IByteBufferHolder.cs
│ ├── IPoolArenaMetric.cs
│ ├── IPoolChunkListMetric.cs
│ ├── IPoolChunkMetric.cs
│ ├── IPoolSubpageMetric.cs
│ ├── PoolArena.cs
│ ├── PoolChunk.cs
│ ├── PoolChunkList.cs
│ ├── PoolSubpage.cs
│ ├── PoolThreadCache.cs
│ ├── PooledByteBuffer.cs
│ ├── PooledByteBufferAllocator.cs
│ ├── PooledByteBufferAllocatorMetric.cs
│ ├── PooledDuplicatedByteBuffer.cs
│ ├── PooledHeapByteBuffer.cs
│ ├── PooledSlicedByteBuffer.cs
│ ├── PooledUnsafeDirectByteBuffer.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── Friends.cs
│ ├── ReadOnlyByteBufferStream.cs
│ ├── SimpleLeakAwareByteBuffer.cs
│ ├── SimpleLeakAwareCompositeByteBuffer.cs
│ ├── ThrowHelper.cs
│ ├── Unpooled.cs
│ ├── UnpooledByteBufferAllocator.cs
│ ├── UnpooledDuplicatedByteBuffer.cs
│ ├── UnpooledHeapByteBuffer.cs
│ ├── UnpooledSlicedByteBuffer.cs
│ ├── UnpooledUnsafeDirectByteBuffer.cs
│ ├── UnreleasableByteBuffer.cs
│ ├── UnsafeByteBufferUtil.cs
│ ├── WrappedByteBuffer.cs
│ └── WrappedCompositeByteBuffer.cs
├── DotNetty.Codecs.Http
│ ├── CombinedHttpHeaders.cs
│ ├── ComposedLastHttpContent.cs
│ ├── Cookies
│ │ ├── ClientCookieDecoder.cs
│ │ ├── ClientCookieEncoder.cs
│ │ ├── CookieDecoder.cs
│ │ ├── CookieEncoder.cs
│ │ ├── CookieHeaderNames.cs
│ │ ├── CookieUtil.cs
│ │ ├── DefaultCookie.cs
│ │ ├── ICookie.cs
│ │ ├── ServerCookieDecoder.cs
│ │ └── ServerCookieEncoder.cs
│ ├── Cors
│ │ ├── CorsConfig.cs
│ │ ├── CorsConfigBuilder.cs
│ │ └── CorsHandler.cs
│ ├── DefaultFullHttpRequest.cs
│ ├── DefaultFullHttpResponse.cs
│ ├── DefaultHttpContent.cs
│ ├── DefaultHttpHeaders.cs
│ ├── DefaultHttpMessage.cs
│ ├── DefaultHttpObject.cs
│ ├── DefaultHttpRequest.cs
│ ├── DefaultHttpResponse.cs
│ ├── DefaultLastHttpContent.cs
│ ├── DotNetty.Codecs.Http.csproj
│ ├── EmptyHttpHeaders.cs
│ ├── EmptyLastHttpContent.cs
│ ├── HttpChunkedInput.cs
│ ├── HttpClientCodec.cs
│ ├── HttpClientUpgradeHandler.cs
│ ├── HttpConstants.cs
│ ├── HttpContentCompressor.cs
│ ├── HttpContentDecoder.cs
│ ├── HttpContentDecompressor.cs
│ ├── HttpContentEncoder.cs
│ ├── HttpExpectationFailedEvent.cs
│ ├── HttpHeaderNames.cs
│ ├── HttpHeaderValues.cs
│ ├── HttpHeaders.cs
│ ├── HttpHeadersEncoder.cs
│ ├── HttpMessageUtil.cs
│ ├── HttpMethod.cs
│ ├── HttpObjectAggregator.cs
│ ├── HttpObjectDecoder.cs
│ ├── HttpObjectEncoder.cs
│ ├── HttpRequestDecoder.cs
│ ├── HttpRequestEncoder.cs
│ ├── HttpResponseDecoder.cs
│ ├── HttpResponseEncoder.cs
│ ├── HttpResponseStatus.cs
│ ├── HttpScheme.cs
│ ├── HttpServerCodec.cs
│ ├── HttpServerExpectContinueHandler.cs
│ ├── HttpServerKeepAliveHandler.cs
│ ├── HttpServerUpgradeHandler.cs
│ ├── HttpStatusClass.cs
│ ├── HttpUtil.cs
│ ├── HttpVersion.cs
│ ├── IFullHttpMessage.cs
│ ├── IFullHttpRequest.cs
│ ├── IFullHttpResponse.cs
│ ├── IHttpContent.cs
│ ├── IHttpMessage.cs
│ ├── IHttpObject.cs
│ ├── IHttpRequest.cs
│ ├── IHttpResponse.cs
│ ├── ILastHttpContent.cs
│ ├── Multipart
│ │ ├── AbstractDiskHttpData.cs
│ │ ├── AbstractHttpData.cs
│ │ ├── AbstractMemoryHttpData.cs
│ │ ├── CaseIgnoringComparator.cs
│ │ ├── DefaultHttpDataFactory.cs
│ │ ├── DiskAttribute.cs
│ │ ├── DiskFileUpload.cs
│ │ ├── EndOfDataDecoderException.cs
│ │ ├── ErrorDataDecoderException.cs
│ │ ├── ErrorDataEncoderException.cs
│ │ ├── FileUploadUtil.cs
│ │ ├── HttpPostBodyUtil.cs
│ │ ├── HttpPostMultipartRequestDecoder.cs
│ │ ├── HttpPostRequestDecoder.cs
│ │ ├── HttpPostRequestEncoder.cs
│ │ ├── HttpPostStandardRequestDecoder.cs
│ │ ├── IAttribute.cs
│ │ ├── IFileUpload.cs
│ │ ├── IHttpData.cs
│ │ ├── IHttpDataFactory.cs
│ │ ├── IInterfaceHttpData.cs
│ │ ├── IInterfaceHttpPostRequestDecoder.cs
│ │ ├── InternalAttribute.cs
│ │ ├── MemoryAttribute.cs
│ │ ├── MemoryFileUpload.cs
│ │ ├── MixedAttribute.cs
│ │ ├── MixedFileUpload.cs
│ │ ├── MultiPartStatus.cs
│ │ └── NotEnoughDataDecoderException.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── Friends.cs
│ ├── QueryStringDecoder.cs
│ ├── QueryStringEncoder.cs
│ ├── ThrowHelper.cs
│ ├── UrlEncoder.cs
│ └── WebSockets
│ │ ├── BinaryWebSocketFrame.cs
│ │ ├── CloseWebSocketFrame.cs
│ │ ├── ContinuationWebSocketFrame.cs
│ │ ├── Extensions
│ │ ├── Compression
│ │ │ ├── DeflateDecoder.cs
│ │ │ ├── DeflateEncoder.cs
│ │ │ ├── DeflateFrameClientExtensionHandshaker.cs
│ │ │ ├── DeflateFrameServerExtensionHandshaker.cs
│ │ │ ├── PerFrameDeflateDecoder.cs
│ │ │ ├── PerFrameDeflateEncoder.cs
│ │ │ ├── PerMessageDeflateClientExtensionHandshaker.cs
│ │ │ ├── PerMessageDeflateDecoder.cs
│ │ │ ├── PerMessageDeflateEncoder.cs
│ │ │ ├── PerMessageDeflateServerExtensionHandshaker.cs
│ │ │ ├── WebSocketClientCompressionHandler.cs
│ │ │ └── WebSocketServerCompressionHandler.cs
│ │ ├── IWebSocketClientExtension.cs
│ │ ├── IWebSocketClientExtensionHandshaker.cs
│ │ ├── IWebSocketExtension.cs
│ │ ├── IWebSocketServerExtension.cs
│ │ ├── IWebSocketServerExtensionHandshaker.cs
│ │ ├── WebSocketClientExtensionHandler.cs
│ │ ├── WebSocketExtensionData.cs
│ │ ├── WebSocketExtensionDecoder.cs
│ │ ├── WebSocketExtensionEncoder.cs
│ │ ├── WebSocketExtensionUtil.cs
│ │ └── WebSocketServerExtensionHandler.cs
│ │ ├── IWebSocketFrameDecoder.cs
│ │ ├── IWebSocketFrameEncoder.cs
│ │ ├── PingWebSocketFrame.cs
│ │ ├── PongWebSocketFrame.cs
│ │ ├── TextWebSocketFrame.cs
│ │ ├── Utf8FrameValidator.cs
│ │ ├── Utf8Validator.cs
│ │ ├── WebSocket00FrameDecoder.cs
│ │ ├── WebSocket00FrameEncoder.cs
│ │ ├── WebSocket07FrameDecoder.cs
│ │ ├── WebSocket07FrameEncoder.cs
│ │ ├── WebSocket08FrameDecoder.cs
│ │ ├── WebSocket08FrameEncoder.cs
│ │ ├── WebSocket13FrameDecoder.cs
│ │ ├── WebSocket13FrameEncoder.cs
│ │ ├── WebSocketChunkedInput.cs
│ │ ├── WebSocketClientHandshaker.cs
│ │ ├── WebSocketClientHandshaker00.cs
│ │ ├── WebSocketClientHandshaker07.cs
│ │ ├── WebSocketClientHandshaker08.cs
│ │ ├── WebSocketClientHandshaker13.cs
│ │ ├── WebSocketClientHandshakerFactory.cs
│ │ ├── WebSocketClientProtocolHandler.cs
│ │ ├── WebSocketClientProtocolHandshakeHandler.cs
│ │ ├── WebSocketFrame.cs
│ │ ├── WebSocketFrameAggregator.cs
│ │ ├── WebSocketHandshakeException.cs
│ │ ├── WebSocketProtocolHandler.cs
│ │ ├── WebSocketScheme.cs
│ │ ├── WebSocketServerHandshaker.cs
│ │ ├── WebSocketServerHandshaker00.cs
│ │ ├── WebSocketServerHandshaker07.cs
│ │ ├── WebSocketServerHandshaker08.cs
│ │ ├── WebSocketServerHandshaker13.cs
│ │ ├── WebSocketServerHandshakerFactory.cs
│ │ ├── WebSocketServerProtocolHandler.cs
│ │ ├── WebSocketServerProtocolHandshakeHandler.cs
│ │ ├── WebSocketUtil.cs
│ │ └── WebSocketVersion.cs
├── DotNetty.Codecs.Mqtt
│ ├── DotNetty.Codecs.Mqtt.csproj
│ ├── MqttDecoder.cs
│ ├── MqttEncoder.cs
│ ├── Packets
│ │ ├── ConnAckPacket.cs
│ │ ├── ConnectPacket.cs
│ │ ├── ConnectReturnCode.cs
│ │ ├── DisconnectPacket.cs
│ │ ├── Packet.cs
│ │ ├── PacketType.cs
│ │ ├── PacketWithId.cs
│ │ ├── PingReqPacket.cs
│ │ ├── PingRespPacket.cs
│ │ ├── PubAckPacket.cs
│ │ ├── PubCompPacket.cs
│ │ ├── PubRecPacket.cs
│ │ ├── PubRelPacket.cs
│ │ ├── PublishPacket.cs
│ │ ├── QualityOfService.cs
│ │ ├── SubAckPacket.cs
│ │ ├── SubscribePacket.cs
│ │ ├── SubscriptionRequest.cs
│ │ ├── UnsubAckPacket.cs
│ │ └── UnsubscribePacket.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── Friends.cs
│ ├── Signatures.cs
│ └── Util.cs
├── DotNetty.Codecs.Protobuf
│ ├── DotNetty.Codecs.Protobuf.csproj
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ProtobufDecoder.cs
│ └── ProtobufEncoder.cs
├── DotNetty.Codecs.ProtocolBuffers
│ ├── DotNetty.Codecs.ProtocolBuffers.csproj
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ProtobufDecoder.cs
│ └── ProtobufEncoder.cs
├── DotNetty.Codecs.Redis
│ ├── DotNetty.Codecs.Redis.csproj
│ ├── FixedRedisMessagePool.cs
│ ├── IRedisMessagePool.cs
│ ├── Messages
│ │ ├── AbstractStringRedisMessage.cs
│ │ ├── ArrayHeaderRedisMessage.cs
│ │ ├── ArrayRedisMessage.cs
│ │ ├── BulkStringHeaderRedisMessage.cs
│ │ ├── DefaultBulkStringRedisContent.cs
│ │ ├── DefaultLastBulkStringRedisContent.cs
│ │ ├── ErrorRedisMessage.cs
│ │ ├── FullBulkStringRedisMessage.cs
│ │ ├── IArrayRedisMessage.cs
│ │ ├── IBulkStringRedisContent.cs
│ │ ├── IFullBulkStringRedisMessage.cs
│ │ ├── ILastBulkStringRedisContent.cs
│ │ ├── IRedisMessage.cs
│ │ ├── InlineCommandRedisMessage.cs
│ │ ├── IntegerRedisMessage.cs
│ │ ├── RedisMessageType.cs
│ │ └── SimpleStringRedisMessage.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── RedisArrayAggregator.cs
│ ├── RedisBulkStringAggregator.cs
│ ├── RedisCodecException.cs
│ ├── RedisCodecUtil.cs
│ ├── RedisConstants.cs
│ ├── RedisDecoder.cs
│ └── RedisEncoder.cs
├── DotNetty.Codecs
│ ├── Base64
│ │ ├── Base64.cs
│ │ ├── Base64Decoder.cs
│ │ ├── Base64Dialect.cs
│ │ └── Base64Encoder.cs
│ ├── ByteToMessageDecoder.cs
│ ├── CharSequenceValueConverter.cs
│ ├── CodecException.cs
│ ├── Compression
│ │ ├── Adler32.cs
│ │ ├── CRC32.cs
│ │ ├── CompressionException.cs
│ │ ├── DecompressionException.cs
│ │ ├── Deflate.cs
│ │ ├── Deflater.cs
│ │ ├── GZIPException.cs
│ │ ├── GZIPHeader.cs
│ │ ├── IChecksum.cs
│ │ ├── InfBlocks.cs
│ │ ├── InfCodes.cs
│ │ ├── InfTree.cs
│ │ ├── Inflate.cs
│ │ ├── Inflater.cs
│ │ ├── JZlib.cs
│ │ ├── JZlibDecoder.cs
│ │ ├── JZlibEncoder.cs
│ │ ├── StaticTree.cs
│ │ ├── Tree.cs
│ │ ├── ZStream.cs
│ │ ├── ZlibCodecFactory.cs
│ │ ├── ZlibDecoder.cs
│ │ ├── ZlibEncoder.cs
│ │ ├── ZlibUtil.cs
│ │ └── ZlibWrapper.cs
│ ├── CorruptedFrameException.cs
│ ├── DatagramPacketDecoder.cs
│ ├── DatagramPacketEncoder.cs
│ ├── DateFormatter.cs
│ ├── DecoderException.cs
│ ├── DecoderResult.cs
│ ├── DefaultHeaders.cs
│ ├── DelimiterBasedFrameDecoder.cs
│ ├── Delimiters.cs
│ ├── DotNetty.Codecs.csproj
│ ├── EncoderException.cs
│ ├── HeadersUtils.cs
│ ├── IDecoderResultProvider.cs
│ ├── IHeaders.cs
│ ├── INameValidator.cs
│ ├── IValueConverter.cs
│ ├── Json
│ │ └── JsonObjectDecoder.cs
│ ├── LengthFieldBasedFrameDecoder.cs
│ ├── LengthFieldPrepender.cs
│ ├── LineBasedFrameDecoder.cs
│ ├── MessageAggregationException.cs
│ ├── MessageAggregator.cs
│ ├── MessageToByteEncoder.cs
│ ├── MessageToMessageCodec.cs
│ ├── MessageToMessageDecoder.cs
│ ├── MessageToMessageEncoder.cs
│ ├── NullNameValidator.cs
│ ├── PrematureChannelClosureException.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── Friends.cs
│ ├── Protobuf
│ │ ├── ProtobufVarint32FrameDecoder.cs
│ │ └── ProtobufVarint32LengthFieldPrepender.cs
│ ├── ReplayingDecoder.cs
│ ├── Strings
│ │ ├── StringDecoder.cs
│ │ └── StringEncoder.cs
│ ├── TooLongFrameException.cs
│ └── UnsupportedMessageTypeException.cs
├── DotNetty.Common
│ ├── Concurrency
│ │ ├── AbstractEventExecutor.cs
│ │ ├── AbstractEventExecutorGroup.cs
│ │ ├── AbstractExecutorService.cs
│ │ ├── AbstractScheduledEventExecutor.cs
│ │ ├── ActionScheduledAsyncTask.cs
│ │ ├── ActionScheduledTask.cs
│ │ ├── ExecutionEnvironment.cs
│ │ ├── ExecutorTaskScheduler.cs
│ │ ├── ICallable`T.cs
│ │ ├── IEventExecutor.cs
│ │ ├── IEventExecutorGroup.cs
│ │ ├── IExecutor.cs
│ │ ├── IExecutorService.cs
│ │ ├── IRunnable.cs
│ │ ├── IScheduledExecutorService.cs
│ │ ├── IScheduledRunnable.cs
│ │ ├── IScheduledTask.cs
│ │ ├── RejectedExecutionException.cs
│ │ ├── RunnableScheduledTask.cs
│ │ ├── ScheduledAsyncTask.cs
│ │ ├── ScheduledTask.cs
│ │ ├── SingleThreadEventExecutor.cs
│ │ ├── StateActionScheduledAsyncTask.cs
│ │ ├── StateActionScheduledTask.cs
│ │ ├── StateActionWithContextScheduledAsyncTask.cs
│ │ ├── StateActionWithContextScheduledTask.cs
│ │ └── TaskCompletionSource.cs
│ ├── DotNetty.Common.csproj
│ ├── FastThreadLocal.cs
│ ├── IReferenceCounted.cs
│ ├── IResourceLeakHint.cs
│ ├── IResourceLeakTracker.cs
│ ├── Internal
│ │ ├── AbstractQueue.cs
│ │ ├── AppendableCharSequence.cs
│ │ ├── CompatibleConcurrentQueue.cs
│ │ ├── ConcurrentCircularArrayQueue.cs
│ │ ├── DefaultPlatformImplementation.cs
│ │ ├── EmptyArrays.cs
│ │ ├── IAppendable.cs
│ │ ├── IDeque.cs
│ │ ├── IPlatform.cs
│ │ ├── IQueue.cs
│ │ ├── Logging
│ │ │ ├── AbstractInternalLogger.cs
│ │ │ ├── DefaultEventSource.cs
│ │ │ ├── EventSourceLogger.cs
│ │ │ ├── EventSourceLoggerProvider.cs
│ │ │ ├── FormattingTuple.cs
│ │ │ ├── GenericLogger.cs
│ │ │ ├── IInternalLogger.cs
│ │ │ ├── InternalLogLevel.cs
│ │ │ ├── InternalLoggerFactory.cs
│ │ │ └── MessageFormatter.cs
│ │ ├── MacAddressUtil.cs
│ │ ├── MathUtil.cs
│ │ ├── MpscArrayQueue.cs
│ │ ├── Platform.cs
│ │ ├── PlatformDependent.cs
│ │ ├── PlatformDependent0.cs
│ │ ├── PlatformProvider.cs
│ │ ├── RefArrayAccessUtil.cs
│ │ ├── SpscLinkedQueue.cs
│ │ └── SystemPropertyUtil.cs
│ ├── InternalThreadLocalMap.cs
│ ├── PreciseTimeSpan.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── Friends.cs
│ ├── ResourceLeakDetector.cs
│ ├── ThreadDeathWatcher.cs
│ ├── ThreadLocalObjectList.cs
│ ├── ThreadLocalPool.cs
│ └── Utilities
│ │ ├── AbstractConstant.cs
│ │ ├── AbstractReferenceCounted.cs
│ │ ├── ActionTimerTask.cs
│ │ ├── ArrayExtensions.cs
│ │ ├── AsciiString.cs
│ │ ├── AtomicReference.cs
│ │ ├── AttributeKey.cs
│ │ ├── BitOps.cs
│ │ ├── ByteProcessor.cs
│ │ ├── ByteProcessorUtils.cs
│ │ ├── CharSequenceEnumerator.cs
│ │ ├── CharUtil.cs
│ │ ├── ConstantPool.cs
│ │ ├── DebugExtensions.cs
│ │ ├── DefaultAttributeMap.cs
│ │ ├── HashedWheelTimer.cs
│ │ ├── IAttribute.cs
│ │ ├── IAttributeMap.cs
│ │ ├── ICharSequence.cs
│ │ ├── IConstant.cs
│ │ ├── IHashingStrategy.cs
│ │ ├── ITimeout.cs
│ │ ├── ITimer.cs
│ │ ├── ITimerTask.cs
│ │ ├── IllegalReferenceCountException.cs
│ │ ├── IntegerExtensions.cs
│ │ ├── MediumUtil.cs
│ │ ├── NetUtil.cs
│ │ ├── PriorityQueue.cs
│ │ ├── RandomExtensions.cs
│ │ ├── ReferenceCountUtil.cs
│ │ ├── ReferenceEqualityComparer.cs
│ │ ├── Signal.cs
│ │ ├── StringBuilderCharSequence.cs
│ │ ├── StringCharSequence.cs
│ │ ├── StringUtil.cs
│ │ ├── TaskEx.cs
│ │ ├── ThreadExtensions.cs
│ │ └── TimeUtil.cs
├── DotNetty.Handlers
│ ├── DotNetty.Handlers.csproj
│ ├── Flow
│ │ └── FlowControlHandler.cs
│ ├── Logging
│ │ ├── LogLevel.cs
│ │ ├── LogLevelExtensions.cs
│ │ └── LoggingHandler.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── Friends.cs
│ ├── Streams
│ │ ├── ChunkedStream.cs
│ │ ├── ChunkedWriteHandler.cs
│ │ └── IChunkedInput.cs
│ ├── Timeout
│ │ ├── IdleState.cs
│ │ ├── IdleStateEvent.cs
│ │ ├── IdleStateHandler.cs
│ │ ├── ReadTimeoutException.cs
│ │ ├── ReadTimeoutHandler.cs
│ │ ├── TimeoutException.cs
│ │ ├── WriteTimeoutException.cs
│ │ └── WriteTimeoutHandler.cs
│ └── Tls
│ │ ├── ClientTlsSettings.cs
│ │ ├── NotSslRecordException.cs
│ │ ├── ServerTlsSettings.cs
│ │ ├── ServerTlsSniSettings.cs
│ │ ├── SniHandler.cs
│ │ ├── TlsHandler.MediationStream.Net.cs
│ │ ├── TlsHandler.MediationStream.cs
│ │ ├── TlsHandler.MediationStreamBase.cs
│ │ ├── TlsHandler.cs
│ │ ├── TlsHandshakeCompletionEvent.cs
│ │ ├── TlsSettings.cs
│ │ └── TlsUtils.cs
├── DotNetty.Transport.Libuv
│ ├── DispatcherEventLoop.cs
│ ├── DispatcherEventLoopGroup.cs
│ ├── DotNetty.Transport.Libuv.csproj
│ ├── EventLoop.cs
│ ├── EventLoopGroup.cs
│ ├── LoopExecutor.cs
│ ├── Native
│ │ ├── Async.cs
│ │ ├── ConnectRequest.cs
│ │ ├── Loop.cs
│ │ ├── NativeHandle.cs
│ │ ├── NativeMethods.cs
│ │ ├── NativeRequest.cs
│ │ ├── OperationException.cs
│ │ ├── Pipe.cs
│ │ ├── PipeHandle.cs
│ │ ├── PipeListener.cs
│ │ ├── PlatformApi.cs
│ │ ├── ReadOperation.cs
│ │ ├── RemoteConnection.cs
│ │ ├── Tcp.cs
│ │ ├── TcpConnect.cs
│ │ ├── TcpHandle.cs
│ │ ├── TcpListener.cs
│ │ ├── Timer.cs
│ │ ├── UnixApi.cs
│ │ ├── WindowsApi.cs
│ │ └── WriteRequest.cs
│ ├── NativeChannel.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── Friends.cs
│ ├── TcpChannel.cs
│ ├── TcpChannelConfig.cs
│ ├── TcpServerChannel.cs
│ ├── TcpServerChannelConfig.cs
│ ├── WorkerEventLoop.cs
│ └── WorkerEventLoopGroup.cs
├── DotNetty.Transport
│ ├── Bootstrapping
│ │ ├── AbstractBootstrap.cs
│ │ ├── Bootstrap.cs
│ │ ├── DefaultNameResolver.cs
│ │ ├── INameResolver.cs
│ │ └── ServerBootstrap.cs
│ ├── Channels
│ │ ├── AbstractChannel.cs
│ │ ├── AbstractChannelHandlerContext.cs
│ │ ├── AbstractServerChannel.cs
│ │ ├── ActionChannelInitializer.cs
│ │ ├── AdaptiveRecvByteBufAllocator.cs
│ │ ├── AffinitizedEventLoopGroup.cs
│ │ ├── AlreadyConnectedException.cs
│ │ ├── BatchingPendingWriteQueue.cs
│ │ ├── ChannelDuplexHandler.cs
│ │ ├── ChannelException.cs
│ │ ├── ChannelHandlerAdapter.cs
│ │ ├── ChannelInitializer.cs
│ │ ├── ChannelMetadata.cs
│ │ ├── ChannelOption.cs
│ │ ├── ChannelOutboundBuffer.cs
│ │ ├── ChannelPipelineException.cs
│ │ ├── ClosedChannelException.cs
│ │ ├── CombinedChannelDuplexHandler.cs
│ │ ├── ConnectException.cs
│ │ ├── ConnectTimeoutException.cs
│ │ ├── ConnectionPendingException.cs
│ │ ├── DefaultAddressedEnvelope.cs
│ │ ├── DefaultChannelConfiguration.cs
│ │ ├── DefaultChannelHandlerContext.cs
│ │ ├── DefaultChannelId.cs
│ │ ├── DefaultChannelPipeline.cs
│ │ ├── DefaultFileRegion.cs
│ │ ├── DefaultMaxMessagesRecvByteBufAllocator.cs
│ │ ├── DefaultMessageSizeEstimator.cs
│ │ ├── Embedded
│ │ │ ├── EmbeddedChannel.cs
│ │ │ ├── EmbeddedChannelId.cs
│ │ │ ├── EmbeddedEventLoop.cs
│ │ │ ├── EmbeddedSocketAddress.cs
│ │ │ ├── IEmbeddedChannel.cs
│ │ │ └── SingleThreadedEmbeddedChannel.cs
│ │ ├── FixedRecvByteBufAllocator.cs
│ │ ├── Groups
│ │ │ ├── ChannelGroupException.cs
│ │ │ ├── ChannelMatchers.cs
│ │ │ ├── CombinedEnumerator.cs
│ │ │ ├── DefaultChannelGroup.cs
│ │ │ ├── DefaultChannelGroupCompletionSource.cs
│ │ │ ├── IChannelGroup.cs
│ │ │ ├── IChannelGroupTaskCompletionSource.cs
│ │ │ └── IChannelMatcher.cs
│ │ ├── IAddressedEnvelope.cs
│ │ ├── IChannel.cs
│ │ ├── IChannelConfiguration.cs
│ │ ├── IChannelHandler.cs
│ │ ├── IChannelHandlerContext.cs
│ │ ├── IChannelId.cs
│ │ ├── IChannelPipeline.cs
│ │ ├── IChannelUnsafe.cs
│ │ ├── IEventLoop.cs
│ │ ├── IEventLoopGroup.cs
│ │ ├── IFileRegion.cs
│ │ ├── IMaxMessagesRecvByteBufAllocator.cs
│ │ ├── IMessageSizeEstimator.cs
│ │ ├── IMessageSizeEstimatorHandle.cs
│ │ ├── IRecvByteBufAllocator.cs
│ │ ├── IRecvByteBufAllocatorHandle.cs
│ │ ├── IServerChannel.cs
│ │ ├── Local
│ │ │ ├── LocalAddress.cs
│ │ │ ├── LocalChannel.cs
│ │ │ ├── LocalChannelRegistry.cs
│ │ │ └── LocalServerChannel.cs
│ │ ├── MultithreadEventLoopGroup.cs
│ │ ├── NotYetConnectedException.cs
│ │ ├── PendingWriteQueue.cs
│ │ ├── Pool
│ │ │ ├── AbstractChannelPoolMap.cs
│ │ │ ├── ChannelActiveHealthChecker.cs
│ │ │ ├── CountingChannelPoolHandler.cs
│ │ │ ├── FixedChannelPool.cs
│ │ │ ├── IChannelHealthChecker.cs
│ │ │ ├── IChannelPool.cs
│ │ │ ├── IChannelPoolHandler.cs
│ │ │ ├── IChannelPoolMap.cs
│ │ │ └── SimpleChannelPool.cs
│ │ ├── SimpleChannelInboundHandler.cs
│ │ ├── SingleThreadEventLoop.cs
│ │ ├── SkipAttribute.cs
│ │ ├── Sockets
│ │ │ ├── AbstractSocketByteChannel.cs
│ │ │ ├── AbstractSocketChannel.cs
│ │ │ ├── AbstractSocketMessageChannel.cs
│ │ │ ├── ChannelInputShutdownEvent.cs
│ │ │ ├── DatagramPacket.cs
│ │ │ ├── DefaultDatagramChannelConfig.cs
│ │ │ ├── DefaultServerSocketChannelConfig.cs
│ │ │ ├── DefaultSocketChannelConfiguration.cs
│ │ │ ├── IDatagramChannel.cs
│ │ │ ├── IDatagramChannelConfig.cs
│ │ │ ├── IServerSocketChannel.cs
│ │ │ ├── IServerSocketChannelConfiguration.cs
│ │ │ ├── ISocketChannel.cs
│ │ │ ├── ISocketChannelConfiguration.cs
│ │ │ ├── SocketChannelAsyncOperation.cs
│ │ │ ├── SocketDatagramChannel.cs
│ │ │ ├── TcpServerSocketChannel.cs
│ │ │ └── TcpSocketChannel.cs
│ │ └── Util.cs
│ ├── DotNetty.Transport.csproj
│ └── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── Friends.cs
└── shared
│ └── SharedAssemblyInfo.cs
├── test
├── DotNetty.Buffers.Tests
│ ├── AbstractByteBufferAllocatorTests.cs
│ ├── AbstractByteBufferTests.cs
│ ├── AbstractCompositeByteBufferTests.cs
│ ├── AbstractPooledByteBufferTests.cs
│ ├── AbstractReferenceCountedByteBufferTests.cs
│ ├── AdvancedLeakAwareByteBufferTests.cs
│ ├── AdvancedLeakAwareCompositeByteBufferTests.cs
│ ├── ByteBufferAllocatorTests.cs
│ ├── ByteBufferDerivationTests.cs
│ ├── ByteBufferUtilTests.cs
│ ├── CompositeByteBufferTests.cs
│ ├── ConsolidationTest.cs
│ ├── DefaultByteBufferHolderTests.cs
│ ├── DotNetty.Buffers.Tests.csproj
│ ├── DuplicatedByteBufferTests.cs
│ ├── EmptyByteBufferTests.cs
│ ├── HeapByteBufferTests.cs
│ ├── NoopResourceLeakTracker.cs
│ ├── PoolArenaTests.cs
│ ├── PooledByteBufferAllocatorTests.cs
│ ├── PooledDirectByteBufferTests.cs
│ ├── PooledHeapByteBufferTests.cs
│ ├── PortionedMemoryStream.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ReadOnlyByteBufferStreamTests.cs
│ ├── RetainedSlicedByteBufferTests.cs
│ ├── SimpleLeakAwareByteBufferTests.cs
│ ├── SimpleLeakAwareCompositeByteBufferTests.cs
│ ├── SlicedByteBufferTest.cs
│ ├── UnpooledByteBufferAllocatorTests.cs
│ ├── UnpooledTests.cs
│ ├── UnpooledWriteStreamTests.cs
│ ├── UnreleaseableByteBufferTests.cs
│ ├── UnsafeDirectByteBufferTest.cs
│ └── WrappedCompositeByteBufferTests.cs
├── DotNetty.Codecs.Http.Tests
│ ├── CombinedHttpHeadersTest.cs
│ ├── Cookies
│ │ ├── ClientCookieDecoderTest.cs
│ │ ├── ClientCookieEncoderTest.cs
│ │ ├── ServerCookieDecoderTest.cs
│ │ └── ServerCookieEncoderTest.cs
│ ├── Cors
│ │ ├── CorsConfigTest.cs
│ │ └── CorsHandlerTest.cs
│ ├── DefaultHttpHeadersTest.cs
│ ├── DefaultHttpRequestTest.cs
│ ├── DotNetty.Codecs.Http.Tests.csproj
│ ├── HttpChunkedInputTest.cs
│ ├── HttpClientCodecTest.cs
│ ├── HttpClientUpgradeHandlerTest.cs
│ ├── HttpContentCompressorTest.cs
│ ├── HttpContentDecoderTest.cs
│ ├── HttpContentEncoderTest.cs
│ ├── HttpHeadersTest.cs
│ ├── HttpHeadersTestUtils.cs
│ ├── HttpInvalidMessageTest.cs
│ ├── HttpObjectAggregatorTest.cs
│ ├── HttpRequestDecoderTest.cs
│ ├── HttpRequestEncoderTest.cs
│ ├── HttpResponseDecoderTest.cs
│ ├── HttpResponseEncoderTest.cs
│ ├── HttpResponseStatusTest.cs
│ ├── HttpServerCodecTest.cs
│ ├── HttpServerExpectContinueHandlerTest.cs
│ ├── HttpServerKeepAliveHandlerTest.cs
│ ├── HttpServerUpgradeHandlerTest.cs
│ ├── HttpUtilTest.cs
│ ├── Multipart
│ │ ├── AbstractMemoryHttpDataTest.cs
│ │ ├── DefaultHttpDataFactoryTest.cs
│ │ ├── DiskFileUploadTest.cs
│ │ ├── HttpPostRequestDecoderTest.cs
│ │ ├── HttpPostRequestEncoderTest.cs
│ │ ├── MemoryFileUploadTest.cs
│ │ ├── file-01.txt
│ │ └── file-02.txt
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── QueryStringDecoderTest.cs
│ ├── QueryStringEncoderTest.cs
│ └── WebSockets
│ │ ├── Extensions
│ │ ├── Compression
│ │ │ ├── DeflateFrameClientExtensionHandshakerTest.cs
│ │ │ ├── DeflateFrameServerExtensionHandshakerTest.cs
│ │ │ ├── PerFrameDeflateDecoderTest.cs
│ │ │ ├── PerFrameDeflateEncoderTest.cs
│ │ │ ├── PerMessageDeflateClientExtensionHandshakerTest.cs
│ │ │ ├── PerMessageDeflateDecoderTest.cs
│ │ │ ├── PerMessageDeflateEncoderTest.cs
│ │ │ ├── PerMessageDeflateServerExtensionHandshakerTest.cs
│ │ │ └── WebSocketServerCompressionHandlerTest.cs
│ │ ├── WebSocketClientExtensionHandlerTest.cs
│ │ ├── WebSocketExtensionTestUtil.cs
│ │ ├── WebSocketExtensionUtilTest.cs
│ │ └── WebSocketServerExtensionHandlerTest.cs
│ │ ├── WebSocket00FrameEncoderTest.cs
│ │ ├── WebSocket08EncoderDecoderTest.cs
│ │ ├── WebSocket08FrameDecoderTest.cs
│ │ ├── WebSocketClientHandshaker00Test.cs
│ │ ├── WebSocketClientHandshaker07Test.cs
│ │ ├── WebSocketClientHandshaker08Test.cs
│ │ ├── WebSocketClientHandshaker13Test.cs
│ │ ├── WebSocketClientHandshakerTest.cs
│ │ ├── WebSocketFrameAggregatorTest.cs
│ │ ├── WebSocketHandshakeHandOverTest.cs
│ │ ├── WebSocketProtocolHandlerTest.cs
│ │ ├── WebSocketRequestBuilder.cs
│ │ ├── WebSocketServerHandshaker00Test.cs
│ │ ├── WebSocketServerHandshaker08Test.cs
│ │ ├── WebSocketServerHandshaker13Test.cs
│ │ ├── WebSocketServerHandshakerFactoryTest.cs
│ │ └── WebSocketServerProtocolHandlerTest.cs
├── DotNetty.Codecs.Mqtt.Tests
│ ├── DotNetty.Codecs.Mqtt.Tests.csproj
│ ├── MqttCodecTests.cs
│ └── Properties
│ │ └── AssemblyInfo.cs
├── DotNetty.Codecs.Protobuf.Tests
│ ├── Addressbook.cs
│ ├── Addressbook.proto
│ ├── DotNetty.Codecs.Protobuf.Tests.csproj
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── RoundTripTests.cs
├── DotNetty.Codecs.ProtocolBuffers.Tests
│ ├── AddressBook.proto
│ ├── Addressbook.cs
│ ├── DotNetty.Codecs.ProtocolBuffers.Tests.csproj
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── RoundTripTests.cs
├── DotNetty.Codecs.Redis.Tests
│ ├── DotNetty.Codecs.Redis.Tests.csproj
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── RedisCodecTestUtil.cs
│ ├── RedisDecoderTest.cs
│ └── RedisEncoderTests.cs
├── DotNetty.Codecs.Tests
│ ├── Base64Test.cs
│ ├── DatagramPacketDecoderTest.cs
│ ├── DatagramPacketEncoderTest.cs
│ ├── DateFormatterTest.cs
│ ├── DefaultHeadersTest.cs
│ ├── DotNetty.Codecs.Tests.csproj
│ ├── Frame
│ │ ├── LengthFieldBasedFrameDecoderTests.cs
│ │ └── LengthFieldPrependerTest.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── Protobuf
│ │ ├── ProtobufVarint32FrameDecoderTest.cs
│ │ ├── ProtobufVarint32LengthFieldPrependerTests.cs
│ │ └── TestUtil.cs
├── DotNetty.Common.Tests
│ ├── Concurrency
│ │ └── SingleThreadEventExecutorTests.cs
│ ├── DotNetty.Common.Tests.csproj
│ ├── Internal
│ │ └── Logging
│ │ │ └── InternalLoggerFactoryTest.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ThreadLocalPoolTest.cs
│ ├── Utilities
│ │ ├── AsciiStringCharacterTest.cs
│ │ ├── HashedWheelTimerTest.cs
│ │ └── PriorityQueueTest.cs
│ └── app.config
├── DotNetty.Handlers.Tests
│ ├── AsIsWriteStrategy.cs
│ ├── BatchingWriteStrategy.cs
│ ├── DotNetty.Handlers.Tests.csproj
│ ├── Flow
│ │ └── FlowControlHandlerTest.cs
│ ├── IWriteStrategy.cs
│ ├── IdleStateHandlerTest.cs
│ ├── MediationStream.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── SniHandlerTest.cs
│ └── TlsHandlerTest.cs
├── DotNetty.Microbench
│ ├── Allocators
│ │ ├── AbstractByteBufferAllocatorBenchmark.cs
│ │ ├── PooledByteBufferAllocatorBenchmark.cs
│ │ ├── PooledHeapByteBufferAllocatorBenchmark.cs
│ │ └── UnpooledByteBufferAllocatorBenchmark.cs
│ ├── Buffers
│ │ ├── ByteBufUtilBenchmark.cs
│ │ ├── ByteBufferBenchmark.cs
│ │ ├── PooledByteBufferBenchmark.cs
│ │ └── UnpooledByteBufferBenchmark.cs
│ ├── Codecs
│ │ └── DateFormatterBenchmark.cs
│ ├── Common
│ │ └── AsciiStringBenchmark.cs
│ ├── Concurrency
│ │ ├── FastThreadLocalBenchmark.cs
│ │ └── SingleThreadEventExecutorBenchmark.cs
│ ├── DotNetty.Microbench.csproj
│ ├── Headers
│ │ ├── ExampleHeaders.cs
│ │ └── HeadersBenchmark.cs
│ ├── Http
│ │ ├── ClientCookieDecoderBenchmark.cs
│ │ ├── HttpRequestDecoderBenchmark.cs
│ │ ├── HttpRequestEncoderInsertBenchmark.cs
│ │ └── WriteBytesVsShortOrMediumBenchmark.cs
│ ├── Internal
│ │ └── PlatformDependentBenchmark.cs
│ ├── Program.cs
│ └── Properties
│ │ └── AssemblyInfo.cs
├── DotNetty.Tests.Common
│ ├── AssertEx.cs
│ ├── ChannelExtensions.cs
│ ├── Disposable.cs
│ ├── DotNetty.Tests.Common.csproj
│ ├── EnumerableExtensions.cs
│ ├── LogTestHelper.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ReadListeningHandler.cs
│ ├── TaskExtensions.cs
│ ├── TestBase.cs
│ ├── TestResourceHelper.cs
│ ├── XUnitOutputLogger.cs
│ ├── XUnitOutputLoggerProvider.cs
│ └── app.config
├── DotNetty.Tests.End2End
│ ├── DotNetty.Tests.End2End.csproj
│ ├── EchoChannelHandler.cs
│ ├── End2EndTests.cs
│ ├── ExceptionCatchHandler.cs
│ └── app.config
├── DotNetty.Transport.Libuv.Tests
│ ├── AutoReadTests.cs
│ ├── BufReleaseTests.cs
│ ├── CloseForciblyTests.cs
│ ├── CompositeBufferGatheringWriteTests.cs
│ ├── ConnectTests.cs
│ ├── ConnectionAttemptTests.cs
│ ├── DetectPeerCloseWithoutReadTests.cs
│ ├── DotNetty.Transport.Libuv.Tests.csproj
│ ├── EchoTests.cs
│ ├── EventLoopTests.cs
│ ├── ExceptionHandlingTests.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ReadPendingTests.cs
│ ├── ResetTests.cs
│ ├── TestUtil.cs
│ └── WriteBeforeRegisteredTests.cs
├── DotNetty.Transport.Tests.Performance
│ ├── DotNetty.Transport.Tests.Performance.csproj
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Sockets
│ │ ├── SocketDatagramChannelPerfSpecs.cs
│ │ ├── TcpSocketChannelInboundOnlyPerfSpec.cs
│ │ └── TcpSocketChannelPerfSpec.cs
│ ├── Transport
│ │ ├── AbstractPingPongPerfSpecs.cs
│ │ ├── AbstractPumpPerfSpecs.cs
│ │ ├── LibuvPingPongPerfSpecs.cs
│ │ ├── LibuvPumpPerfSpecs.cs
│ │ ├── SocketPingPongPerfSpecs.cs
│ │ └── SocketPumpPerfSpecs.cs
│ └── Utilities
│ │ ├── CounterHandlerInbound.cs
│ │ ├── CounterHandlerOutbound.cs
│ │ ├── IReadFinishedSignal.cs
│ │ ├── ManualResetEventSlimReadFinishedSignal.cs
│ │ ├── ReadFinishedHandler.cs
│ │ ├── SimpleReadFinishedSignal.cs
│ │ └── TaskCompletionSourceFinishedSignal.cs
└── DotNetty.Transport.Tests
│ ├── Channel
│ ├── DefaulChannelIdTest.cs
│ ├── Embedded
│ │ └── EmbeddedChannelTest.cs
│ ├── Pool
│ │ ├── FixedChannelPoolTest.cs
│ │ └── SimpleChannelPoolTest.cs
│ └── Sockets
│ │ ├── NetUtil.cs
│ │ ├── SocketDatagramChannelMulticastTest.cs
│ │ └── SocketDatagramChannelUnicastTest.cs
│ ├── DotNetty.Transport.Tests.csproj
│ └── Properties
│ └── AssemblyInfo.cs
└── tools
└── AddCopyrightHeaderToSourceFiles.ps1
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.doc diff=astextplain
2 | *.DOC diff=astextplain
3 | *.docx diff=astextplain
4 | *.DOCX diff=astextplain
5 | *.dot diff=astextplain
6 | *.DOT diff=astextplain
7 | *.pdf diff=astextplain
8 | *.PDF diff=astextplain
9 | *.rtf diff=astextplain
10 | *.RTF diff=astextplain
11 |
12 | *.jpg binary
13 | *.png binary
14 | *.gif binary
15 |
16 | *.cs text=auto diff=csharp
17 | *.vb text=auto
18 | *.resx text=auto
19 | *.c text=auto
20 | *.cpp text=auto
21 | *.cxx text=auto
22 | *.h text=auto
23 | *.hxx text=auto
24 | *.py text=auto
25 | *.rb text=auto
26 | *.java text=auto
27 | *.html text=auto
28 | *.htm text=auto
29 | *.css text=auto
30 | *.scss text=auto
31 | *.sass text=auto
32 | *.less text=auto
33 | *.js text=auto
34 | *.lisp text=auto
35 | *.clj text=auto
36 | *.sql text=auto
37 | *.php text=auto
38 | *.lua text=auto
39 | *.m text=auto
40 | *.asm text=auto
41 | *.erl text=auto
42 | *.fs text=auto
43 | *.fsx text=auto
44 | *.hs text=auto
45 | *.txt eol=crlf
46 |
47 | *.csproj text=auto
48 | *.vbproj text=auto
49 | *.fsproj text=auto
50 | *.dbproj text=auto
51 | *.sln text=auto eol=crlf
52 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | [Oo]bj/
2 | [Bb]in/
3 | TestResults/
4 | PerfResults/
5 | .nuget/
6 | .fake/
7 | _ReSharper.*/
8 | .idea/
9 | *.sln.iml
10 | packages/
11 | artifacts/
12 | PublishProfiles/
13 | *.user
14 | *.suo
15 | *.cache
16 | *.docstates
17 | _ReSharper.*
18 | nuget.exe
19 | *net45.csproj
20 | *net451.csproj
21 | *k10.csproj
22 | *.psess
23 | *.vsp
24 | *.pidb
25 | *.userprefs
26 | *DS_Store
27 | *.ncrunchsolution
28 | *.*sdf
29 | *.ipch
30 | *.sln.ide
31 | *.lock.json
32 | *.db
33 | .vs/
34 | [Tt]ools/Cake.*
35 | [Tt]ools/NBench.*
36 | [Tt]ools/NBench
37 | /build/
38 | .dotnet/
39 | DotNetty.*.nuget.targets
40 | *.exe
--------------------------------------------------------------------------------
/.nuget/NuGet.Config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2.0",
3 | "configurations": [
4 | {
5 | "name": ".NET Core Launch (console)",
6 | "type": "coreclr",
7 | "request": "launch",
8 | "preLaunchTask": "build",
9 | "program": "${workspaceRoot}/bin/Debug//",
10 | "args": [],
11 | "cwd": "${workspaceRoot}",
12 | "externalConsole": false,
13 | "stopAtEntry": false,
14 | "internalConsoleOptions": "openOnSessionStart"
15 | },
16 | {
17 | "name": ".NET Core Attach",
18 | "type": "coreclr",
19 | "request": "attach",
20 | "processId": "${command.pickProcess}"
21 | }
22 | ]
23 | }
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.1.0",
3 | "command": "dotnet",
4 | "isShellCommand": true,
5 | "args": [],
6 | "tasks": [
7 | {
8 | "taskName": "msbuild",
9 | "args": [
10 | "dotnetty.sln"
11 | ],
12 | "isBuildCommand": true,
13 | "problemMatcher": "$msCompile"
14 | }
15 | ]
16 | }
--------------------------------------------------------------------------------
/Directory.Build.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/DotNetty.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/DotNetty/78c5757062a9eb62e2aab2bbb35d3983710f9651/DotNetty.snk
--------------------------------------------------------------------------------
/after.DotNetty.sln.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/appveyor.yml:
--------------------------------------------------------------------------------
1 | version: 0.7.0.{build}
2 | pull_requests:
3 | do_not_increment_build_number: true
4 | image: Visual Studio 2022
5 | build_script:
6 | - cmd: powershell .\build.ps1 -target PR
7 | test: off
8 | deploy: off
9 | notifications:
10 | - provider: GitHubPullRequest
11 | auth_token:
12 | secure: SYDAZL544to3SpNef6qb6HMYCgIr07XkNIRnS/BUem8ahAXIebAzd6LnAlZg1YSA
13 | on_build_success: true
14 | on_build_failure: true
15 | on_build_status_changed: true
--------------------------------------------------------------------------------
/examples/Discard.Client/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "ssl": "true",
3 | "host": "127.0.0.1",
4 | "port": "8007",
5 | "size": "256"
6 | }
--------------------------------------------------------------------------------
/examples/Discard.Server/DiscardServerHandler.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft. All rights reserved.
2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3 |
4 | namespace Discard.Server
5 | {
6 | using System;
7 | using DotNetty.Transport.Channels;
8 |
9 | public class DiscardServerHandler : SimpleChannelInboundHandler