- Fix TLS handshake for net8
- Fix infinite loop caused by TlsHandler
- target fix: net5 -> net5.0, net6 -> net6.0
- target net5 and net6
- Adopted TlsHandler for the case when Handshake completion callback is dispatched asynchronously to thread pool
- Introduced SingleThreadedEmbededChannel for TlsHandler and SniHandler tests
- Start threads as background in HashedWheelTimer, LoopExecutor, ThreadDeathWatcher
- Google.Protobuf 3.19.4 (latest)
- Revert to use background threads
- Target net472 and netstandard2.0
- Microsoft.Extensions.Logging 5.0.0
- Microsoft.Extensions.Configuration 5.0.0
- Clearly marks Unsafe Buffer management routines as
unsafe
- Changes defaults for Unpooled and Pooled buffer allocators to safe versions
- Fixes write buffer handling (#423)
- Web Socket support
- Aligned execution service model
- Fix for synchronous socket connection establishment on .NET Core 2.1
- TlsHandler fixes
- Fix to scheduled task cancellation
- XML Doc updates
- Unsafe direct buffers
- HTTP 1.1 codec
- FlowControlHandler
- Channel pool
- Better Buffer-String integration
- Better shutdown handling for sockets
- Realigned Redis codec
- Fixes to LenghtFieldPrepender, LengthFieldBasedDecoder
- Fixes to libuv-based transport
- Fixes to buffer management on flush for .NET Core
- Fixes to ResourceLeakDetector
- Small fixes (#259, #260, #264, #266)
- Properly handling handshake with AutoRead = false when Read is not issued by upstream handlers in pipeline (#263)
- Proper exception handling in TcpServerSocketChannel to retry accept instead of closing (#272)
- Support for Medium and Unsigned Medium types (#244)
- Support for Float (Single) type and Zeroing API (#209)
- Hashed Wheel Timer (#242)
- Fix for unintended concurrent flush (#218), silent failures during TLS handshake (#225)
- Added SNI support
- Fixed assembly metadata
- Extended support for .NET 4.5
- Fix to PooledByteBufferAllocator to promptly release freed chunks for GC
- Ability to limit overall PooledByteBufferAllocator capacity
- Updated dependencies
- Better alignment with .NET Standard and portability (esp UWP support)
- New tooling
- Introduced Platform allowing for alternative implementations of platform-specific concepts.
- STEE and others use Task-based "thread" abstraction.
- .NET Standard 1.3 support.
- Libraries are strong-named by default.
- Redis codec.
- Protocol Buffers 2 and 3 codecs.
- Socket Datagram Channel.
- Base64 encoder and decoder.
- STEE uses ConcurrentQueue by default (queue impl is pluggable now).
- Better API alignment with final version of netty 4.1 (#125).
- Exposed API for flexible TlsHandler initialization (#132, #134).
- Port of IdleStateHandler, ReadTimeoutHandler, WriteTimeoutHandler (#98).
- Fixes and optimization in TlsHandler (#116).
- Port of AdaptiveRecvByteBufAllocator enabling flexible sizing of read buffer (#117).
- Support for adding Attributes on Channel (#114).
- Proper xml-doc configuration (#120).
- BREAKING CHANGE: default byte buffer is now PooledByteBufferAllocator (unless overriden through environment variable).
- Port of PooledByteBuffer (support for flexible buffer sizes).
- Enables sending of multiple buffers in a single socket call.
- Refreshed DefaultChannelPipeline, AbstractChannelHandlerContext.
- Port of JsonObjectDecoder, DelimeterBasedFrameDecoder.
- Fixes to async sending in TcpSocketChannel.
- IoBufferCount, GetIoBuffer(s) introduced in IByteBuffer.
- TlsHandler negotiates TLS 1.0+ on server side (#89).
- STEE properly supports graceful shutdown (#7).
- UnpooledHeapByteBuffer.GetBytes honors received index and length (#88).
- Port of MessageToMessageDecoder, LineBasedFrameDecoder, StringDecoder, StringEncoder, ByteProcessor and ForEachByte family of methods on Byte Buffers (#86).
- Fixes regression in STEE where while evaluation of idling timeout did not account for immediately pending scheduled tasks (#83).
- Proper handling of pooled buffer growth beyond max capacity of buffer in pool (fixing #71).
- Improved pooling of buffers when a buffer was released in other thread (#73).
- Introduction of IEventExecutor.Schedule and proper cancellation of scheduled tasks (#80).
- Better handling of wake-ups for scheduled tasks (#81).
- Default internal logging initialization is deferred to allow override it completely (#80 extra).
- Honoring
IByteBuffer.ArrayOffset
inIByteBuffer.ToString(Encoding)
(#80 extra).
- Critical fix to handling of async operations when initiated from outside the event loop (#66).
- Fix to enable setting socket-related options through SetOption on Bootstrap (#68).
- build changes to allow signing assemblies
ResourceLeakDetector
fix (#64)- Assigned GUID on default internal logger
EventSource
IByteBuffer.ToString(..)
for efficient string decoding directly from Byte Buffer
- fixes to EmptyByteBuffer
- ported LoggingHandler
- Proper Event Executor model port
- EmbeddedChannel
- Better test coverage for executor model and basic channel functionality
- Channel groups support
- Channel ID
- Complete
LengthFieldBasedFrameDecoder
andLengthFieldPrepender
- Resource leak detection support (basic is on by default for pooled byte buffers)
- Proper internal logging
- Reacher byte buffer API
- Proper utilities set for byte buffers, strings, system properties
- Performance improvements in SingleThreadEventExecutor
- Fixed
TcpSocketChannel
closure on graceful socket closure - Better alignment of IChannel implementations to netty's expected behavior for
Open
,Active
,LocalAddress
,RemoteAddress
- Proper port of
Default/IChannelPipeline
andAbstractChannelHandlerContext
to enable channel handlers to run on different invoker.
First public release