Skip to content

Releases: apple/swift-nio

SwiftNIO 2.42.0

27 Sep 12:18
a16e2f5
Compare
Choose a tag to compare

Security

  • This update fixes CVE-2022-3215: Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Response Splitting') . For more details please see the security advisory. Please update to 2.42.0 as rapidly as possible.

SemVer Minor

  • Implement a back-pressure aware AsyncSequence source (#2230)
  • Add throwing version of NIOAsyncSequenceProducer (#2237)
  • Conform NIOTooManyBytesError to Hashable (#2246)
  • Functions passed to non-Sendable ChannelHandlers do not need to conform to Sendable (#2249)
  • Implement a NIOAsyncWriter (#2251)
  • Add EventLoopFuture.makeCompletedFuture(withResultOf:) (#2253)
  • HTTPResponseStatus should print code and reason (#2257)
  • Provide NIOAsyncTestingChannel (#2238)
  • NIOConcurrency: add NIOLockedValueBox (#2265)
  • rename class Lock to struct NIOLock (#2266)

SemVer Patch

  • Small changes for the NIOAsyncSequenceProducer (#2254)
  • Call finish once the Source is deinited (#2258)
  • Add availability requirements to NIOAsyncSequenceProducer extension (#2236)
  • Update HTTP parser to LLHTTP (#2263)
  • Add support for newer LLHTTP status codes (#2269)

Other Changes

  • Define Array element type explicitly to fix nightly CI (#2250)
  • Fix typo in the name of a constant (#2262, patch credit to @heldersrvio)
  • Fixup docs for the NIOAsyncWriter (#2271)
  • initial adoption of DocC based documentaiton (#2235)
  • Update soundness.sh (#2240)
  • Validate missing imports in CI (#2245)
  • Widen the tolerance on testSystemCallWrapperPerformance in debug mode (#2259)
  • helpful error message when compiling without test discovery on >= 5.5 (#2264)
  • address additional NIOLockedValueBox review comments (#2270)

SwiftNIO 2.39.1

27 Sep 12:24
d0f261d
Compare
Choose a tag to compare

Security

  • This update fixes CVE-2022-3215: Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Response Splitting') . For more details please see the security advisory. Please update to 2.42.0 if possible, otherwise update to 2.39.1 as rapidly as possible.

SwiftNIO 2.29.1

27 Sep 12:24
aa5be1d
Compare
Choose a tag to compare

Security

  • This update fixes CVE-2022-3215: Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Response Splitting') . For more details please see the security advisory. Please update to 2.42.0 if possible, otherwise update to 2.39.1, otherwise update to 2.29.1 as rapidly as possible.

SwiftNIO 2.41.1

04 Aug 09:55
b4e0a27
Compare
Choose a tag to compare

SemVer Patch

  • Fix compilation with Swift 5.5.0 and 5.5.1 (#2234)

SwiftNIO 2.41.0

02 Aug 14:14
ece5057
Compare
Choose a tag to compare

Highlights

This release fully adopts Sendable in all libraries. In minimal concurrency checking mode (i.e. without -warn-concurrency) this should not produce any Sendable errors in your code as we have used @preconccurency to give adopters time to comply to the sendability rules. Many conformances are only available in Swift 5.7 though. Note that swift-nio itself currently does not compile successfully with strict concurrency checking turned on (with -warn-concurrency).

Please file an issue if your code no longer compiles because of Sendable errors.

SemVer Minor

SemVer Patch

Other Changes

  • Added test for BufferView custom contains function (#2227, patch credit to @anishagg17)
  • Move tests of NIOCore types from NIOPosixTests to NIOCoreTests (#2093)
  • Reduce the alloc limits for main (#2095)
  • Reduce the alloc limits of 1000_tcpconnections for main (#2116)
  • NIOPerformanceTester: Add DeadlineNowBenchmark for NIODeadline.now() (#2117)
  • Reduce the alloc limits for main (#2118)
  • NIOPerformanceTester: Increase operations used in lock benchmarks from 1M to 10M (#2121)
  • DatagramChannelTests: Handle receiving datagrams out-of-order in ECN tests (#2123)
  • readme: Fix API docs link following NIOCore refactoring (#2126)
  • Fix flake AsyncTestingEventLoopTest (#2147)
  • Use 5.7 nightlies (#2186)
  • Use correct alloc limits for 5.7 (#2193)

SwiftNIO 2.40.0

27 Apr 16:33
124119f
Compare
Choose a tag to compare

SemVer Minor

  • Drop support for Swift 5.2 and 5.3 (#2080)
  • Add Hashable conformance to HTTPResponseStatus (#2069)

SemVer Patch

  • Improve the performance of copying CircularBuffer (#2059)
  • Use unbuffered IO for stdout in NIOPerformanceTester (#2072)
  • Remove invalid math in ByteBuffer slice slow path (#2075)
  • http_parser uses "main" as the main branch (#2078)
  • BaseSocket: Remove dead code in BaseSocket.bind(to:) (#2086)

Other Changes

  • Fix doc comment formatting in SingleStepByteToMessageDecoder.swift (#2076, patch credit to @MaxDesiatov)
  • Increase runtime of performance tests to O(10 ms) to increase SNR (#2063)
  • Update alloc limits for nightly. (#2071)
  • update contributors (#2077)
  • Script to list transitive dependencies (#2082)
  • Fix warnings, that appeared after requiring Swift 5.4 (#2085)

SwiftNIO 2.39.0

23 Mar 12:03
d6e3762
Compare
Choose a tag to compare

SemVer Minor

  • EventLoopFuture add flatMapWithEventLoop and friends (#1996) (#2049)

SemVer Patch

  • SelectableEventLoop save allocations when appending task (#2046)
  • atomics: make add/sub @discardableResult (#2048)
  • Make all ByteBuffer methods inlinable (#2050)
  • Reduce memory binding operations (#2055)

Other Changes

  • Fixed some typos (#2051, patch credit to @BenedictSt)
  • Use SPM breaking changes checker (#2019)
  • Add an allocation test for executing which needs to hop threads. (#2047)
  • Add benchmarks for copying CircularBuffer to Array (#2058)
  • Add limits for the new test (#2060)
  • Remove unnecessary extra swift file. (#2062)
  • Wait a little longer for our repeated task (#2064)
  • ci update (#2066)

SwiftNIO 2.38.0

10 Feb 10:21
154f1d3
Compare
Choose a tag to compare

SemVer Minor

  • Implement ByteBufferView custom contains function to improve performance. (#2044, patch credit to @SeJV)
  • Improve the performance of copying ByteBufferView (#2039)
  • Add collect(upTo:into:) to AsyncSequence (#2038)

SemVer Patch

  • Improve ByteBuffer.setSubstring(_:at:) performance (#1975, patch credit to @gwynne)
  • Fix the double encoding issue in encodeAsByteBuffer (#2043, patch credit to @stepan-ulyanin)

Other Changes

  • Allow NIOEchoClient to receive fragmented echo responses. (#2041, patch credit to @SeJV)
  • Add 5.6 nightly CI (#2032)
  • Add benchmarks for copying ByteBufferView to Array. (#2037)
  • Add benchmark for ByteBufferView contains. (#1385) (#2042, patch credit to @SeJV)

SwiftNIO 2.37.0

12 Jan 16:00
51c3fc2
Compare
Choose a tag to compare

SemVer Minor

  • Conditionally conform AddressedEnvelope to Hashable & Equatable (#2017)

SemVer Patch

  • Get Android constants used by Channel from Bionic instead (#2026, patch credit to @buttaface)
  • Reduce allocations when scheduling tasks (#2010, #2011)
  • Add canImport(_Concurrency) for Xcode 13.0 (#2015)
  • Guarantee ordering of scheduleTask with same deadline (#2020)
  • Precondition that read doesn't return EINVAL (#2022)

Other Changes

  • Correct spelling of foreseeable in README.md (#2024, patch credit to @bobychaudhary)
  • Update docs generation script to match latest source-kitten (#2013)
  • Update soundness script for 2022 (#2027)
  • nio-diagnose: list all thread names (#2030)

SwiftNIO 2.36.0

14 Dec 11:05
213eb68
Compare
Choose a tag to compare

SemVer Minor

  • Adds Swift Concurrency Availability to macOS 10.15, iOS 13, tvOS 13, and watchOS 6 (#2004, patch credit to @PSchmiedmayer)
  • remove/deprecate the file:line: parameters from flatMap and friends (#1998)
  • provide EventLoopGroup.any() which is sticky to the current EventLoop (#2003)

SemVer Patch

  • Relax precondition on EBADF on embedded Apple platforms (#1999, patch credit to @John-Connolly)
  • disable PTHREAD_MUTEX_ERRORCHECK in release mode (#1995)
  • Don't tolerate EBADF on close. (#2002)
  • Enable io_uring builds with newer liburing (#2006)

Other Changes

  • Add baseline performance and allocation tests for scheduleTask and execute (#2009)
  • benchmarks: lock performance for 1, 2, 4, 8 threads wanting lock (#1994)
  • nio-diagnose script (#2008)