Skip to content

Releases: apple/swift-nio

SwiftNIO 2.54.0

31 May 14:42
6213ba7
Compare
Choose a tag to compare

SemVer Minor

  • EmbeddedChannel: getOption(ChannelOptions.allowRemoteHalfClosure) should not fatalError (#2429)

SemVer Patch

  • Pooled control message storage. (#2422, patch credit to @ser-0xff)
  • NIOPOSIX happy eyeballs now hops to the connection event loop when using a custom resolver to avoid data races (#2436)

Other Changes

  • Add tests for WebSocketMaskingKey.random() (#2433, patch credit to @gwynne)
  • Add narrative documentation for NIO's concurrency bridges (#2423)
  • Include relevant versions (kernel & Swift) in test output (#2425)
  • Update update-alloc-limits-... script (#2430)
  • Fix flaky test in NIOAsyncWriter (#2431)

SwiftNIO 2.53.0

09 May 13:36
2d8e6ca
Compare
Choose a tag to compare

SemVer Minor

  • addition of assertSuccess() and assertFailure() on EventLoopFuture (#2417, patch credit to @dkz2)

SemVer Patch

  • Tolerate sending data after close(mode: .output) (#2421)

SwiftNIO 2.52.0

04 May 12:59
546eaa2
Compare
Choose a tag to compare

SemVer Minor

  • Add CustomDebugStringConvertible conformance to ByteBuffer (#2418, patch credit to @gwynne)
  • Add unprocessedBytes property on NIOSingleStepByteToMessageProcessor (#2419)

SwiftNIO 2.51.1

02 May 10:26
d1690f8
Compare
Choose a tag to compare

SemVer Patch

  • Handle close(output) in the pipeline handler. (#2414)
  • NIOThrowingAsyncSequenceProducer throws when cancelled (#2415)

Other Changes

  • Add AsyncChannel based ServerBootstrap.bind() methods (#2403)
  • Extend the integration test harness to track FDs (#2411)
  • AsyncChannelBootstrapTests bind to 0 instead (#2412, #2413)

SwiftNIO 2.51.0

24 Apr 11:23
f7c4655
Compare
Choose a tag to compare

SemVer Minor

SemVer Patch

  • Handle reentrant reads in ALPNHandler (#2402)
  • Close accepted FDs if we fail to create Socket (#2407)
  • Don't have channels stop reading on errors they tolerate. (#2408)

Other Changes

  • Add docker-compose file for Swift 5.9 (#2404)
  • Fix broken docs. (#2405)
  • Avoid double-closing on fcntl failures (#2409)

SwiftNIO 2.50.0

12 Apr 09:29
e0cc6dd
Compare
Choose a tag to compare

SemVer Minor

  • Add NIOAsyncChannel as SPI (@_spi(AsyncChannel)) (#2397)
  • Throw CancellationError if NIOThrowingAsyncSequenceProducer.AsyncIterator.next() is cancelled instead of returning nil. The user defined generic Failure type of NIOThrowingAsyncSequenceProducer is also deprecated and must now always be any Swift.Error. (#2399, #2401)

SemVer Patch

  • Mildly rework the NIOLock storage (#2395)

Other Changes

  • Update links in NIO docs index (#2396)
  • Clean up and regression check the docs. (#2400)

SwiftNIO 2.49.0

20 Mar 10:52
9b2848d
Compare
Choose a tag to compare

SemVer Minor

  • Mark EventLoop.syncShutdownGracefully and EventLoopGroup.syncShutdownGracefully noasync (#2381)
  • Add a pooled recv buffer allocator (#2362)
  • NIOAsyncWriter: Provide a fast path for single element writes (#2365)
  • Provide OnLoopSendable: Sendable containers that bind a value to a specific EventLoop (#2370)
  • Add support for UDP_SEGMENT (#2372)
  • Add support for UDP_GRO (#2385)

SemVer Patch

  • Pool buffers for ivecs and storage refs in the event loop. (#2358, patch credit to @ser-0xff)
  • Fix memory binding. (#2376, patch credit to @ser-0xff)
  • Fix an upcoming compiler warning on implicit raw pointer casts. (#2377, patch credit to @atrick)
  • Buffer pool for message headers and addresses. (#2378, patch credit to @ser-0xff)
  • Remove unused array (#2361)
  • Make PooledBuffer safer. (#2363)
  • Fix swift-nio iOS builds. (#2369)
  • Don't retain a task when all we want is a time (#2373)
  • Make our time types transparent (#2374)
  • Allow UDP GRO tests to fail in some circumstances (#2387)

Other Changes

  • TCP channel throughput benchmark. (#2367, patch credit to @ser-0xff)
  • Add UDP performance tests (#2360)
  • Clarify on EL semantics (#2366)
  • Add availability requirements to TCPThroughputBenchmark (#2368)
  • Not Holding OnToRunClosure() test updates (#2375)
  • Remove redundant availability guards (#2379)
  • Lower the max segment count in tests (#2382)
  • Rebuild the channel when retrying testWriteBufferAtGSOSegmentCountLimit (#2383)
  • Rework the NIOAsyncSequenceProducer tests to rely less on timings (#2386)
  • Work around the SwiftPM layout change. (#2389)
  • Always populate utsname (#2391)

SwiftNIO 2.48.0

26 Jan 13:19
45167b8
Compare
Choose a tag to compare

SemVer Minor

  • Special case EventLoopPromise.succeed() when Value is Void (#2311, patch credit to @mob-connection)

SemVer Patch

  • Tail allocate mutex and a generic value using ManagedBuffer (#2349, patch credit to @asdf-bro)

Other Changes

  • Add Swift 5.8 CI and update nightly CI to Ubuntu 22.04 (#2350)
  • Lift alloc counter Package.swift to 5.1 and add platforms (#2352)
  • Point docs to Swift Package Index (#2353)
  • Fix flaky testTaskCancel_whenStreaming_andNotSuspended (#2355)

SwiftNIO 2.47.0

16 Jan 17:32
4ad2c37
Compare
Choose a tag to compare

SemVer Patch

  • Remove useless instance variables in the SelectableEventLoop (#2338, patch credit to @thomas-gill-0xff)
  • Repair the Windows build of NIOCore (#2339, patch credit to @compnerd)
  • Allow writing and reading empty datagrams (#2341, patch credit to @hashemi)
  • Prepare mmsghdr structure properly. (#2346, patch credit to @ser-0xff)
  • Implement remoteAddress0 and localAddress0 on EmbeddedChannel (#2345)

Other Changes

  • Fix main nightly CI (#2337)
  • 2023 is real, we should support it (#2342)
  • Avoid actually allocating a giant buffer (#2347)
  • Avoid integer literals that won't fit. (#2348)

SwiftNIO 2.46.0

20 Dec 15:19
7e3b50b
Compare
Choose a tag to compare

SemVer Minor

  • Add NIORawSocketBootstrap (#2320, #2317)
  • Make EventLoopFuture.wait() unavailable from async (#2331)
  • Add easier async to future conversion (#2334)

SemVer Patch

  • Cap read+pread POSIX read sizes at Int32.max (#2323)
  • Fix non Darwin/Linux builds (#2328)
  • Remove implicit ByteBuffer copy in copyMemory (#2330)

Other Changes

  • Remove _NIOBeta product (#2319)
  • Remove obsolete information from the README (#2321)
  • Add .spi.yml for Swift Package Index DocC support (#2324, #2329)
  • Measure allocations applying WS mask (#2333)
  • Improve performance of tests (#2336)