Semver Minor
- Added
ChannelCore.removeHandlersto help implementers building custom channels do correct channel shutdown. (#408) - Added initial support for sending quiescing signals to
Channels, and support for these signals toAcceptHandlerandHTTPServerPipelineHandler. (#399) - Added executable product
NIOPerformanceTesterto run standardised NIO performance tests. (#396) - Made
EventLoopFuture.hopTo(eventLoop:)public: while it was introduced in 1.3.0 it was accidentally leftinternal.
Semver Patch
- Improved the resilience of
ByteToMessageDecoderagainst re-entrant calls todecode. (#370) - Improved performance of writing
Sequences toByteBufferobjects in cases where the standard library has fast-path access. (#391, #392) - Fixed an issue where we could accidentally corrupt headers or URIs when parsing HTTP/1 messages due to re-entrant calls to
decode. (#385) - Enhanced
SocketChannelobjects to register themselves with theSelectorlazily, allowing them to more easily be used without needing to handle their registration and binding/connection very carefully. (#388) - Removed some warnings when compiling in Swift 4.2 mode. (#407)
- Removed a
Stringallocation when readingConnectionheaders to determine keep-alive state for HTTP/1. (#402) - Attempted to use
http_parser's detected keep-alive status as much as possible in server applications, reducing the computation overhead of checking keep-alive status in most cases. (#299) - Removed some reliance on implicit importing of header files on Linux. (#400)
- Fixed minor invalid pointer type assumption. (#397)
- Fixed broken 32-bit support. (#383)
- Miscellaneous tooling and code quality improvements. (#390, #394, #398, #403)