Skip to content

Releases: apple/swift-nio

SwiftNIO 1.4.1

11 Apr 16:56
241aed7
Compare
Choose a tag to compare

Semver Patch

  • Restore unary initializer for HTTPHeaders. (#301)

SwiftNIO 1.4.0

11 Apr 14:49
Compare
Choose a tag to compare

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)

SwiftNIO 1.3.1

23 Mar 16:39
Compare
Choose a tag to compare

Semver Patch

  • Fixed build issues on Swift 4.1 snapshots. (#229)

SwiftNIO 1.3.0

23 Mar 15:26
Compare
Choose a tag to compare

Semver Minor

  • Gave HTTPResponseStatus a public initializer that can take a numerical status code and optional reason phrase and create an appropriate enum member, instead of forcing users to use .custom. (#158)
  • Added EventLoopFuture.hopTo(eventLoop:) to simplify code that needs to ensure callbacks dispatch to a specific thread. (#177)

Semver Patch

  • Suppressed compiler warnings that were emitted in release mode. (#179)
  • Fixed compilation on iOS. (#180)
  • Fixed possible infinite loop when shutting down event loops. (#188)
  • Brought EmbeddedEventLoop's task scheduling behaviour closer to that of MultiThreadedEventLoop. (#189)
  • Fixed ordering issues between promises and fire* methods. (#181)
  • Fixed failure to expose backwards-compatibility shim for HTTP header iterator type. (#194)
  • Reduced memory allocation during task dispatch on MultiThreadedEventLoopGroup. (#192)
  • Fixed ordering issues where fireChannelRead could dispatch before fireChannelActive. (#195, #204)
  • Fixed issue where Happy Eyeballs connection state machine would fatalError under high load. (#191)
  • Correctly fail the futures returned from Channel.getOption and channel.setOption when the channel is closed. (#198)
  • Improved error message when a non-synchronous connect fails. (#203)
  • Correctly make the channel active when connect succeeds synchronously. (#205)
  • Better diagnostic logging when leaking an EventLoopPromise allocated from ChannelOutboundInvoker. (#208)
  • Don't crash when a selectable is unregistered from a selector while there are pending select events for that selectable. (#210)
  • Don't retry close when the syscall returns with EINTR. (#217)
  • Work around performance penalty from SR7242. (#223)
  • Prevent users getting access to or removing HeadChannelHandler and TailChannelHandler. (#225)
  • Correctly fail EventLoopPromise for writes on ServerSocketChannel instead of crashing. (#226)
  • Miscellaneous documentation and code style improvements (#207, #212, #219, #197, #142, #193, #87, #190, #183)