Semver Minor
- More strictly enforced channel lifecycle tracking. This will cause new errors to be thrown if channels are mishandled by the NIO core. (#220)
- Added
EventLoopFuture.fold. (#269) - Added
EventLoopFuture.reduceandEventLoopFuture.reduce(into:). (#240) - Added a HTTP server handler that can send 400 errors on HTTP parser errors. (#268)
- Renamed
HTTPHeaders.getCanonicalFormtoHTTPHeaders[canonicalForm:], deprecated the old interface. (#293) - Made several
ByteBuffergeneric methods inlinable. (#266) - Implemented lazy HTTP header parsing. Users, please note that this may change the casing of your HTTP headers. (#291)
Semver Patch
- Changed graceful event loop shutdown to properly wait for channel shutdown. (#231)
- Removed needless availability check restricting use on older macOS platforms. (#233)
- Reduced locking overhead in the
EventLoop. (#235) - Removed overhead in
SocketChannel,ServerSocketChannel,DatagramChannel, andPendingDatagramWriteManagerrelating to the removedflushpromises. (#234) - Removed unnecessary promise allocation in
Selector.closeGently. (#237) - Cleaned up ordering in
EmbeddedChannelconnect and close with respect to promises andchannelActive/channelInactive. (#241) - Improved
PriorityQueueandHeapperformance by bringing them into theNIOmodule. (#245) - Reduced the duplication of results in
getaddrinfolookups. (#221) - Reduced storage overhead of
ChannelHandlerContext. (#247) - Avoided re-arming
timerfdon Linux when doing so was not necessary. (#264) - Improved performance of allocation operations in
ByteBuffer. (#267) - Improved performance and reduced allocation in
HTTPDecoder. (#275) - Added WebSocket documentation. (#276)
- Enhanced
HTTPDecoderto reject HTTP 0.9 and any misleading HTTP/1.1-style protocol that claims a HTTP/2 or higher version. (#283) - Fixed some TSAN issues.
- Reduced the number of
readcalls in most cases. (#296) - Improved the performance of outbound channel operations. (#297)
- Cleaned up typos and other code. (#230, #236, #259, #273)