Releases: apple/swift-nio
Releases · apple/swift-nio
SwiftNIO 2.42.0
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
toHashable
(#2246) - Functions passed to non-
Sendable
ChannelHandler
s do not need to conform toSendable
(#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
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
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
SemVer Patch
- Fix compilation with Swift 5.5.0 and 5.5.1 (#2234)
SwiftNIO 2.41.0
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
- Fully adopt
Sendable
(#2096, #2097, #2098, #2100, #2101, #2102, #2103, #2104, #2107, #2109, #2115, #2135, #2143, #2144, #2145, #2146, #2148, #2149, #2195, #2199, #2202, #2203, #2206, #2208, #2209, #2210, #2211, #2212, #2213, #2214, #2216, #2217, #2218, #2220, #2225, #2229) - NIOCore: replace
mode_t
withCInt
(#2132, patch credit to @compnerd) - Deprecate
NIOAtomics
in favor ofAtomics
(#2204, patch credit to @stevapple) - Define AsyncTestingEventLoop (#2083)
- Add initial support for connected datagram sockets (#2084)
- Throw fatalError when scheduling on shutdown EL if SWIFTNIO_STRICT is set (#2190)
- Provide conversion APIs between TimeAmount and Swift.Duration (#2191)
SemVer Patch
- Repair the build on windows (#2127, #2128, #2129, #2130, #2131, #2133, #2138, #2139, #2140, #2141, #2150, #2151, #2152, #2155, #2156, #2157, #2158, #2163, #2164, #2165, #2166, #2167, #2168, #2170, #2171, #2172, #2173, #2174, #2177, #2179, #2180, #2181, #2182, #2183, #2184, #2188, #2189, #2194, #2215, #2219, patch credit to @compnerd)
- Implement the _failEarlyRangeCheck methods as no-ops (#2161, patch credit to @stepan-ulyanin)
- NIOCore: Implemented all three variants of _failEarlyRangeCheck methods for ByteBufferView (#2226, patch credit to @anishagg17)
- wip: Use clock_gettime for NIODeadline.now() (#2119)
- [docs] Fix docc warning about missing symbol (#2162)
- Add support for translating subnet prefixes to masks (#2169)
- Enhance and rename AsyncTestingEventLoop (#2224)
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
SemVer Minor
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
SemVer Minor
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
toArray
(#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
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:)
toAsyncSequence
(#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
SwiftNIO 2.37.0
SemVer Minor
- Conditionally conform
AddressedEnvelope
toHashable
&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
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)