Skip to content

Releases: apple/swift-nio

SwiftNIO 2.78.0

13 Jan 09:57
27c839f
Compare
Choose a tag to compare

What's Changed

This release contains a number of features that have been added to enable the SwiftNIO ecosystem to adopt strict concurrency checking and the Swift 6 language mode more easily. In particular, this release migrates NIOCore and NIOEmbedded, two critical and widespread dependencies.

This release also contains new tools for making adoption easier, in particular the isolated views of EventLoop, EventLoopPromise, and EventLoopFuture. For more details on how to use these types to make adoption of strict concurrency easier, please see our documentation on the relationship between EventLoops, EventLoopFutures, and Swift's concurrency model.

More work in this area is ongoing, and will be released in subsequent versions.

SemVer Minor

  • Handle Sendability of RemovableChannelHandler by @Lukasa in #2953
  • Clean up Sendability for ChannelInvoker by @Lukasa in #2955
  • Complete NIOCore strict concurrency by @Lukasa in #2959
  • Make NIOFileDescriptor/FileRegion/IOData Sendable & soft-deprecated by @weissi in #2598
  • fix almost all Sendable warnings by @weissi in #2994
  • deprecate NIOEventLoopGroupProvider.createNew by @weissi in #2480
  • Add EventLoop.now API for getting the current time by @simonjbeaumont in #3015
  • Add parallel removal of items by @mimischi in #3008
  • Add isolated views to EventLoop, Promise, and Future by @Lukasa in #2969
  • Get NIOEmbedded clean under strict concurrency by @Lukasa in #3030

SemVer Patch

  • give common blocking functions a clear name by @weissi in #2984
  • ByteBuffer: one fewer allocs to go to Data by @weissi in #1839
  • Remove noasync from NIOFileHandle by @glbrntt in #3001
  • Avoid converting array holding existentials by @Lukasa in #3006
  • Use the new Android overlay in the tests and update some Bionic declarations by @finagolfin in #3009
  • Revert fastRebase implementation by @clintonpi in #3014
  • Deprecate not-actually-public Base64 APIs by @glbrntt in #3022
  • Fix new warnings by @Lukasa in #3026
  • Remove now unneeded fts_open bitcast for Android by @finagolfin in #3025
  • fix bogus "unleakable promise leaked" error message (#2855) by @weissi in #3027
  • Enable MemberImportVisibility check by @rnro in #3029
  • Wait for closeFuture instead of close promise in NIOAsyncChannel's executeThenClose by @gjcairo in #3032
  • Import Android instead for NIOEmbedded by @finagolfin in #3033
  • Support concurrency take over in 6.2 by @Lukasa in #3043
  • GetaddrinfoResolver succeeds futures on eventLoop by @rnro in #3042

Other Changes

  • fix warnings: syncShutdownGracefully not available in async contexts by @weissi in #2995
  • Add Cxx interop swift settings to CI by @rnro in #2999
  • Update documentation comments by @mimischi in #2998
  • Cxx interop CI appends swiftSettings by @rnro in #3002
  • fix remaining warnings & enable -warnings-as-errors in CI by @weissi in #3000
  • Aligning semantic version label check name by @FranzBusch in #3007
  • Introduce JSON matrix workflow by @rnro in #3013
  • Matrix workflows refer to main branch by @rnro in #3016
  • Re-usable workflows curl scripts by @rnro in #3017
  • GHA: Separate matrix input handling by @rnro in #3018
  • Remove outdated documentation by @rauhul in #3023
  • rename top matrix workflow object 'swift'->'config' by @rnro in #3024
  • Fix now-racy scheduled callback tests by @Lukasa in #3031
  • Update release.yml and label action by @FranzBusch in #3035
  • Fix flaky test testTasksScheduledDuringShutdownAreAutomaticallyCancel… by @FranzBusch in #3036
  • Print alloc-limits-from-test-output usage when no args by @glbrntt in #3041

New Contributors

SwiftNIO 2.77.0

27 Nov 11:28
dca6594
Compare
Choose a tag to compare

What's Changed

SemVer Minor

  • Add new protocol for ChannelHandler to get buffered bytes in the channel handler by @johnnzhou in #2918
  • Add WebSocketFrame.reservedBits OptionSet by @adam-fowler in #2971
  • Add ByteBuffer methods getUTF8ValidatedString and readUTF8ValidatedString by @adam-fowler in #2973
  • EventLoopFuture.waitSpinningRunLoop() by @weissi in #2985

SemVer Patch

  • EmbeddedEventLoop/Channel: check correct thread by @weissi in #2951
  • Fix NIOAsyncSequenceProducer watermark strategy. by @FranzBusch in #2952
  • BaseSocketChannel flushNow IONotificationState changes by @rnro in #2954
  • Fix leaking technique by @asdf-bro in #2963
  • Use Swift 6.0 docs pipeline by @rnro in #2966
  • Remove sendable checking from NIOLock and NIOLockedValueBox by @glbrntt in #2968
  • Close channel during upgrade, if client closes input by @adam-fowler in #2756
  • Use condition variable in NIOThreadPool by @glbrntt in #2964
  • Better handle ECONNRESET on connected datagram sockets. by @Lukasa in #2979
  • Only toggle production state when above/below watermark by @glbrntt in #2996
  • Prevent crash in Happy Eyeballs Resolver by @Lukasa in #3003

Other Changes

Full Changelog: 2.76.1...2.77.0

SwiftNIO 2.76.1

24 Oct 12:27
9140817
Compare
Choose a tag to compare

What's Changed

SemVer Patch

  • workaround Xcode 15.4 bug with swift build --arch x86_64 --arch arm64 by @weissi in #2945

Full Changelog: 2.76.0...2.76.1

SwiftNIO 2.76.0

23 Oct 16:25
f6230d3
Compare
Choose a tag to compare

What's Changed

SemVer Minor

SemVer Patch

  • Adopt NIOThrowingAsyncSequenceProducer 2nd try by @rnro in #2917
  • Add future wait benchmark to catch memory leaks by @rnro in #2931
  • Fix Windows build break. by @jeffdav in #2935
  • Fix withConnectedSocket in async mode by @Lukasa in #2937
  • Fix Windows build for NIOCore. by @jeffdav in #2938
  • NIOPosix on Darwin: inherit main thread QoS by @weissi in #2944

Other Changes

New Contributors

Full Changelog: 2.75.0...2.76.0

SwiftNIO 2.75.0

14 Oct 12:35
f7dc3f5
Compare
Choose a tag to compare

What's Changed

SemVer Minor

  • Add EventLoop APIs for simpler scheduling of callbacks by @simonjbeaumont in #2759
  • Add convenience conformances to ByteCount by @clintonpi in #2909
  • Add removeHandler(context: ChannelHandlerContext) to SynchronousOperations of ChannelPipeline by @supersonicbyte in #2912
  • [NIOFileSystem] Provide an API to specify allowing unlimited sized reads by @clintonpi in #2914

SemVer Patch

  • A DatagramChannelTest now waits for writes by @rnro in #2905
  • Throw error when the max read amount is greater than ByteBuffer can tolerate by @clintonpi in #2911

Other Changes

New Contributors

Full Changelog: 2.74.0...2.75.0

SwiftNIO 2.74.0

02 Oct 15:46
6652060
Compare
Choose a tag to compare

What's Changed

SemVer Minor

  • Add ByteBuffer Hex init & write by @ali-ahsan-ali in #2837
  • Add functions for reading and writing length-prefixed data with customizable encodings for the length by @hamzahrmalik in #2867

SemVer Patch

  • ConditionLock deallocs its pthread_cond_t in more cases by @rnro in #2901

Full Changelog: 2.73.0...2.74.0

2.73.0

25 Sep 11:50
1b33db2
Compare
Choose a tag to compare

What's Changed

SemVer Minor

  • Make ByteBuffer's description more useful by @supersonicbyte in #2864
  • Expose UDP_MAX_SEGMENTS via System by @rnro in #2891
  • Add new ChannelOption to get the amount of buffered outbound data in the Channel by @johnnzhou in #2849
  • Add an AcceptBackoffHandler to the async server bootstraps by @FranzBusch in #2782

SemVer Patch

Other Changes

New Contributors

Full Changelog: 2.72.0...2.73.0

2.72.0

03 Sep 18:15
9746cf8
Compare
Choose a tag to compare

What's Changed

SemVer Minor

SemVer Patch

  • Make assumeIsolated work with SerialExecutors that are backed by EventLoops by @fabianfett in #2865

New Contributors

Full Changelog: 2.71.0...2.72.0

2.71.0

02 Sep 13:03
30df855
Compare
Choose a tag to compare

What's Changed

SemVer Minor

  • Adopt strict concurrency and Sendable in NIOConcurrencyHelpers by @Lukasa in #2832
  • Adopt strict concurrency in _NIODataStructures by @Lukasa in #2835
  • Provide documentation and context information for NIOTooManyBytesError by @cmcgee1024 in #2831

SemVer Patch

Other Changes

New Contributors

Full Changelog: 2.70.0...2.71.0

SwiftNIO 2.70.0

05 Aug 15:28
4c4453b
Compare
Choose a tag to compare

What's Changed

SemVer Minor

SemVer Patch

Other Changes

New Contributors

Full Changelog: 2.69.0...2.70.0