Skip to content

SwiftNIO 1.4.0

Compare
Choose a tag to compare
@Lukasa Lukasa released this 11 Apr 14:49
· 1825 commits to main since this release

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.reduce and EventLoopFuture.reduce(into:). (#240)
  • Added a HTTP server handler that can send 400 errors on HTTP parser errors. (#268)
  • Renamed HTTPHeaders.getCanonicalForm to HTTPHeaders[canonicalForm:], deprecated the old interface. (#293)
  • Made several ByteBuffer generic 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, and PendingDatagramWriteManager relating to the removed flush promises. (#234)
  • Removed unnecessary promise allocation in Selector.closeGently. (#237)
  • Cleaned up ordering in EmbeddedChannel connect and close with respect to promises and channelActive/channelInactive. (#241)
  • Improved PriorityQueue and Heap performance by bringing them into the NIO module. (#245)
  • Reduced the duplication of results in getaddrinfo lookups. (#221)
  • Reduced storage overhead of ChannelHandlerContext. (#247)
  • Avoided re-arming timerfd on 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 HTTPDecoder to 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 read calls in most cases. (#296)
  • Improved the performance of outbound channel operations. (#297)
  • Cleaned up typos and other code. (#230, #236, #259, #273)