Skip to content

Releases: apple/swift-nio

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)

SwiftNIO 2.35.0

26 Nov 09:32
37e7a33
Compare
Choose a tag to compare

SemVer Minor

  • ByteBuffer: provide multi read/write int methods (#1987)
  • ByteBuffer: Read and write null terminated strings (#1990)

SemVer Patch

  • ByteBuffer: reduce unnecessary bounds & under/overflow checks (#1988)

Other Changes

  • Fix testSchedulingTaskOnSleepingLoopWakesUpOnce (#1992)

SwiftNIO 2.34.0

10 Nov 10:36
addf69c
Compare
Choose a tag to compare

SemVer Minor

  • Conform EventLoopFuture/Promise to Sendable (#1982, patch credit to @adam-fowler)
  • HTTPDecoder: Decode informational http response head correctly (#1984)
  • Allow HTTP Server to send multiple informational heads before actual response head (#1985)

SemVer Patch

  • Remove not on eventLoop precondition for NIOPipeBootstrap (#1977, patch credit to @jabwd)
  • ByteBuffer: Reduce ARC traffic when reading (#1978, #1979)
  • ByteBuffer: shrink getSlice (#1980)
  • ByteBuffer: force getSlice to be inlined into readSlice (#1981)

Other Changes

  • Update workarounds list with our recent ones (#1962)
  • Add perf hooks for testing substring path. (#1976)

SwiftNIO 2.33.0

23 Sep 17:18
6aa9347
Compare
Choose a tag to compare

SemVer Minor

  • Move AsyncAwait helpers into NIOCore (#1969)

SemVer Patch

  • NIOSingleStepByteToMessageProcessor: Only reclaim once at the end of the decode loop (#1958)
  • NIOSingleStepByteToMessageProcessor: Inline process methods (#1959)
  • Get unit tests running again on nightly builds. (#1961)
  • Only include concurrency features on new OSes (#1966)
  • Readd module _NIOConcurrency to not break adopters (#1970)

Other updates

  • Fix HttpPart description comment typo (#1963) (patch credit to @wplong11)
  • Migrate to Swift 5.5 release in CI. (#1967)