- 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