Releases: apple/swift-nio
Releases · apple/swift-nio
2.86.2
SwiftNIO 2.86.1
What's Changed
SemVer Patch
- [Windows] Ensure ssize_t and socklen_t are available by @fabianfett in #3337
- [Windows] Add msghdr extension for Windows by @fabianfett in #3336
- [Windows] Ensure NIOHTTP1 compiles by @fabianfett in #3338
- Drop all server response parts after an invalid header by @glbrntt in #3339
- [Windows] Make Thread.swift compile by @fabianfett in #3341
- [Windows] Make ControlMessage.swift compile by @fabianfett in #3342
- [Windows] Map naming conventions Windows -> Posix (ssize_t) by @fabianfett in #3343
- [Windows] Make SelectableEventLoop compile by @fabianfett in #3344
- [Windows] Fix deprecation warnings in NIOCore by @fabianfett in #3345
- [Windows] fatalError concurrency takeover by @fabianfett in #3347
- [Windows] Make
SocketChannel.swift
compile by @fabianfett in #3348 - [Windows] Use WSASend as writev equivalent by @fabianfett in #3350
- [Windows] Fix getenv warnings in NIOPosix and NIOEmbedded by @fabianfett in #3351
- [Windows]
dup
is deprecated on Windows, use_dup
instead by @fabianfett in #3352 - [Windows] Add shims to make string from
GetLastError
usingFormatMessage
by @fabianfett in #3353 - [Windows] Allow
_SelectorBackendProtocol
to work with Windows Handles by @fabianfett in #3356 - [Windows] Use recv instead of read by @fabianfett in #3357
- [Windows] Disable Pipelines for now (fatalError) by @fabianfett in #3358
- SelectableEventLoop.debugDescription: fix debugDescription deadlock by @weissi in #3360
- [Windows] Return false from concurrency takeover by @fabianfett in #3362
- [Windows] Make SelectorGeneric compile on Windows by @fabianfett in #3359
- [Windows] Reimplement pread by @fabianfett in #3361
- [Windows] Sleep instead of WSAPoll, if no outstanding IO by @fabianfett in #3365
- [Windows] Reimplement pwrite by @fabianfett in #3364
- [Windows] Ensure WSAStartup is correctly called. by @fabianfett in #3366
- Remove NIOFileSystem from products by @glbrntt in #3370
- Miscellaneous rearrangements of NIOFileSystem by @aryan-25 in #3333, by @glbrntt in #3363, and by @glbrntt in #3367
Other Changes
- Add Android imports for some new tests in #3308 that require it by @finagolfin in #3334
- Make testMetricsDelegateTickInfo less flaky by @glbrntt in #3335
- [wasm][2/2] Include WebAssembly SDK checks in PR and main workflows by @kateinoigakukun in #3332
- Use path based deps in the alloc counter framework by @glbrntt in #3355
- Add Xcode 26.0, 16.4 CI, remove 16.2 by @rnro in #3375
- Update CI scripts for 6.2 by @fabianfett in #3374
Full Changelog: 2.86.0...2.87.0
SwiftNIO 2.86.0
What's Changed
SemVer Minor
- Fixes all warnings when
-require-explicit-sendable
flag is enabled by @rafaelcepeda in #3320 - Add a new file path type, NIOFilePath, backed by SystemPackage's FilePath type by @aryan-25 in #3322
- Support options on AsyncTestingChannel and EmbeddedChannel by @klaaspieter in #3308
SemVer Patch
- [Windows] Windows has endianess too by @fabianfett in #3317
- [Windows] Ensure NIOEmbedded compiles by @fabianfett in #3319
- [Windows] IOVector is WSABUF on Windows by @fabianfett in #3324
- Don't double-initialize Pipe Bootstraps by @Lukasa in #3330
Other Changes
- CMake Updater: Output difference in expectations by @etcwilde in #3314
- Move conditional setup logic from bash to actions by @madrob in #3313
- Fix docc by @rafaelcepeda in #3315
- Fix typo in
HTTPServerClientTest.swift
comments by @MaxDesiatov in #3323 - Enable release mode builds for pull requests by @josephnoir in #3321
- Do not run windows nightly CI by default by @josephnoir in #3325
- Enable release mode builds by @josephnoir in #3327
- Add bpftrace support to stackdiff by @Lukasa in #3329
- [wasm][1/2] Add reusable WebAssembly workflow by @kateinoigakukun in #3331
New Contributors
- @etcwilde made their first contribution in #3314
- @klaaspieter made their first contribution in #3308
Full Changelog: 2.85.0...2.86.0
SwiftNIO 2.85.0
What's Changed
SemVer Minor
- Structured Concurrency compliant MTELG create/shutdown by @weissi in #3296
- Make file handle sendable by @ali-ahsan-ali in #3300
SemVer Patch
- Functions that return values should return those values by @Lukasa in #3283
- Run
update_and_patch_llhttp.sh
script to update to 9.3.0 by @xtremekforever in #3298 - ensure
<stddef.h>
is not imported within extern "C" by @xtremekforever in #3299 - improve
inEventLoop
checks by @weissi in #3302 - Wrap closures stored in the
CallbackList
by @glbrntt in #3303 - NIOThread refactor: pthread_t lifetimes by @weissi in #3297
- NIOThread: remove the detached threads functionality by @weissi in #3304
- Call channel initializer when using async methods on pipe bootstrap by @Lukasa in #3309
- Remove Foundation import by @glbrntt in #3310
Other Changes
- Widen the allocation limit on nightlies by @Lukasa in #3280
- Update
generate_matrix.sh
for windows nightlies to 2022 images by @rnro in #3284 - Make use of symlink to latest Xcode beta by @rnro in #3285
- Add internals for stackdiff tool by @glbrntt in #3286
- Add diffing to the stackdiff tool by @glbrntt in #3287
- Add dtrace parsing by @glbrntt in #3288
- Add stackdiff dump by @glbrntt in #3289
- Add stackdiff merging by @glbrntt in #3290
- Avoid spurious xcodebuild warning by @madrob in #3291
- Add DocC docs for running alloc tests and debugging them by @glbrntt in #3293
- Add bpftrace allocations script by @Lukasa in #3113
- Add
inEventLoop
benchmark by @weissi in #3301 - Pick visionOS version for Xcode 16.2 by @glbrntt in #3307
- Fixes a small mistake in the NIOTCPEchoServer README file by @rafaelcepeda in #3311
New Contributors
- @madrob made their first contribution in #3291
- @xtremekforever made their first contribution in #3298
Full Changelog: 2.84.0...2.85.0
SwiftNIO 2.84.0
What's Changed
SemVer Minor
- Fix NioAsyncWriter test on concurrency thread pool with single thread by @orobio in #3135
- Adjust for SendableMetatype by @Lukasa in #3266
- Extend NIOEventLoopTickInfo with end-time and loop sleep time by @josephnoir in #3268
- Adding RawSpan support to writeBytes in ByteBuffer by @yigityazicilar in #3269
- Add
scheduleCallback
APIs toNIOIsolatedEventLoop
by @ptoffy in #3263
SemVer Patch
NIOThrowingAsyncSequenceProducer
make more funcs@inlinable
by @fabianfett in #3243- Handle different ThreadDestructor signatures between Android NDK 27 and NDK 28 by @marcprux in #3249
- Make CNIOAtomics and CNIODarwin compatible with C++ interop by @egorzhdan in #3251
- Embedded channels should set local and remote address always by @hamzahrmalik in #3254
- fix: Fix compiler error found on latest main that breaks wasip1 (wasm) compilation by @scottmarchant in #3271
- Support for 64-bit timespec seconds on 32-bit platforms by @lhoward in #3277
- Work around Android nullability errors by @Lukasa in #3279
Other Changes
- Macos setup command by @rnro in #3236
- Update check-matrix-job.sh to default swift commands by @rnro in #3237
- Enable visionOS xcodebuilds by default in CI - attempt 2 by @rnro in #3238
- Update macos_tests.yml to limit run time to 30 minutes by @rnro in #3240
- Print the swift version in Linux matrix jobs by @rnro in #3241
- Remove default setup command for Xcode 16.2 by @glbrntt in #3242
- Revert "Remove default setup command for Xcode 16.2 (#3242)" by @glbrntt in #3244
- Revert "Print the swift version in Linux matrix jobs" by @rnro in #3245
- Execute swift --version in shared workflows by @rnro in #3247
- Revert "Revert "Remove default setup command for Xcode 16.2 (#3242)" (#3244)" by @glbrntt in #3248
- Update the matrix nightly-next to point to 6.2 by @rnro in #3250
- Retry curl operations in CI scripts by @rnro in #3256
- Benchmarks workflow prints diff when changes found by @rnro in #3258
- a couple grammar fixes by @GameRoMan in #3259
- Add Xcode 26 beta 1 to macOS CI by @rnro in #3267
- Fixed issue with macOS CI when overrides are being used. by @rafaelcepeda in #3270
- Add assembly files for Windows by @Steelskin in #3275
- Fix API documentation links in README.md by @azarovalex in #3276
New Contributors
- @egorzhdan made their first contribution in #3251
- @GameRoMan made their first contribution in #3259
- @josephnoir made their first contribution in #3268
- @yigityazicilar made their first contribution in #3269
- @ptoffy made their first contribution in #3263
- @Steelskin made their first contribution in #3275
- @azarovalex made their first contribution in #3276
- @lhoward made their first contribution in #3277
Full Changelog: 2.83.0...2.84.0
2.83.0
What's Changed
SemVer Minor
- Make ChannelError and NIOConnectionError conform to CustomStringConvertible by @axelandersson in #3230
- Drop Swift 5.9 by @rnro in #3228
- Move
PooledRecvBufferAllocator
from NIOPosix to NIOCore by @rafaelcepeda in #3110
SemVer Patch
- Update Array+FileSystem.swift to add visionOS by @rnro in #3220
- BaseStreamSocketChannel half-close allows outstanding writes to complete by @rnro in #3148
- Remove assertions on PWM failAll and closeOutbound by @rnro in #3231
- Replace almost all public static lets with computed vars by @Lukasa in #3229
Other Changes
- Removed Docker references as repo moved to Github actions by @akbashev in #3227
- Update SECURITY.md by @rnro in #3232
- Disable Swift 5.9 CI jobs by default by @rnro in #3233
New Contributors
- @akbashev made their first contribution in #3227
- @axelandersson made their first contribution in #3230
Full Changelog: 2.82.1...2.83.0
2.82.1
SwiftNIO 2.82.0
What's Changed
SemVer Minor
- Add more methods to work with Isolated futures by @rnro in #3117
- Equatable SocketAddressError by @0xTim in #3119
- Enable strict concurrency checking for NIOHTTP1 by @rnro in #3115
- Enable strict concurrency checking for NIOWebSocket by @rnro in #3127
- Allow NIOLoopBoundBox to be initialized by sending in a value by @hamzahrmalik in #3138
- Add make*Future methods to isolated event loop by @glbrntt in #3152
- Change NIOAsyncChannel.executeThenClose to accept actor-isolated parameter by @rafaelcepeda in #3121
- Add peekInteger APIs to ByteBuffer by @RaghavRoy145 in #3157
- Add peek API variants for ByteBuffer by @RaghavRoy145 in #3160
- Expose the event loop from the loop bound boxes by @glbrntt in #3179
- Add Peek API for Multiple Integers by @RaghavRoy145 in #3175
- Add More Peek API Variants for ByteBuffer by @RaghavRoy145 in #3174
- Swift concurrency for NIOWebSocketTests by @glbrntt in #3208
SemVer Patch
- Make isolated execute on async testing eventloop actually run by @Lukasa in #3116
- Enable strict concurrency checking for NIOTestUtils by @rnro in #3130
- Downgrade NIOHTTP1TestServer handleChannel failure by @rnro in #3137
- always @preconcurrency import Glibc/Musl/Android/Bionic/WASILibc by @weissi in #3153
- fix: Fix NIOCore build for wasm targets by @scottmarchant in #3156
- Improve alloc tests failure messages by @gjcairo in #3173
- Add errorCaught to NIOTypedHTTPClientUpgradeHandler by @adam-fowler in #3210
- Clarify test server error code by @Lukasa in #3212
- Update LLHTTP and apply patch to support C++ interop by @Lukasa in #3216
Other Changes
- Enable strict concurrency checking for NIOHTTP1Server by @rnro in #3132
- Enable strict concurrency checking for NIOHTTP1Client by @rnro in #3131
- Simplify Windows matrix command invocation by @rnro in #3118
- Update generate matrix stript to use nightly_next by @rnro in #3120
- Expose GITHUB_ACTIONS env var to docker containers by @rnro in #3123
- Update re-usable workflows to use nightly_next by @rnro in #3122
- Populate CI env var in swift_test_matrix.yml by @rnro in #3125
- rename nightly 6 1 to nightly next by @rnro in #3126
- NIOSingletons docs: Clarify the set once-ness by @weissi in #3128
- Remove side effect from assertion in IPHeaderRemoverHandler by @glbrntt in #3129
- Delete Thresholds/nightly-6.1 symlinks by @rnro in #3133
- Only apply standard swift settings on valid targets by @rnro in #3134
- A re-usable static SDK compilation workflow by @rnro in #3019
- Add a missing import to CNIOLinux by @czechboy0 in #3140
- Experimental macOS CI by @rnro in #3141
- Remove macOS CI shim by @rnro in #3143
- Make static SDK curl for setup script by @rnro in #3142
- A re-usable CMake check workflow by @rnro in #3144
- install jq, use correct quotes by @rnro in #3145
- Update macOS CI workflow by @rnro in #3150
- A script for updating benchmark thresholds from CI output by @rnro in #3151
- Use overflow addition in tests to avoid compilation failures by @glbrntt in #3155
- Separate build and test steps in
macos_tests.yml
by @rnro in #3162 - macOS CI pools by @rnro in #3163
- Update install_static_sdk.sh to cope with versions with no patch by @rnro in #3166
- Document supported versions consistently by @glbrntt in #3168
- Add support for Xcode 16.3 by @rnro in #3171
- uncomment visionOS CI tasks by @rnro in #3176
- Ignore return value of signal() on Android by @marcprux in #3181
- Update nightly main benchmark thresholds by @rnro in #3187
- Static SDK installation script improvements by @rnro in #3186
- Add perf test for EL as SerialExecutor by @fabianfett in #3178
- Add and enable Swift 6.1 workflows by @rnro in #3196
- Update matrix job script for 6.1 by @rnro in #3201
- Add Tests for WebSocketErrorCode Get, Read and Write APIs in ByteBuffer by @RaghavRoy145 in #3198
- Fix ByteBufferTests when compiling with Swift 6 but running on macOS 14. by @allevato in #3217
- Strict concurrency for websocket client/server demo and async demo by @glbrntt in #3161
- Strict concurrency for NIOHTTP1Tests by @glbrntt in #3169
- Strict concurrency for NIOPerformanceTester and NIOCrashTester by @glbrntt in #3167
- Strict concurrency for NIOTestUtilsTests by @glbrntt in #3206
- Strict concurrency for NIOTLSTests by @glbrntt in #3207
- Strict concurrency NIOPosixTests by @glbrntt in #3183, #3185, #3182, #3184, #3190, #3188, #3189, #3191, #3192, #3193, #3195, #3199, #3205, and #3211
New Contributors
- @czechboy0 made their first contribution in #3140
- @rafaelcepeda made their first contribution in #3121
- @scottmarchant made their first contribution in #3156
- @RaghavRoy145 made their first contribution in #3157
- @marcprux made their first contribution in #3181
- @allevato made their first contribution in #3217
Full Changelog: 2.81.0...2.82.0
SwiftNIO 2.81.0
What's Changed
SemVer Minor
- Make _NIOFileSystem strict concurrency compatible by @Lukasa in #3098
- Add ChannelPipeline.SynchronousOperations.Position by @0xTim in #3065
SemVer Patch
Other Changes
- Update the legacy CI matrix for 6.1 nightly by @rnro in #3094
- Opt _NIOConcurrency into Strict Concurrency by @Lukasa in #3095
- Opt NIOFoundationCompat into strict concurrency by @Lukasa in #3096
- Opt NIO module into Strict Concurrency by @Lukasa in #3097
- Clean up concurrency in NIOEchoClient by @Lukasa in #3099
- Add strict concurrency to NIOUDPEchoServer by @Lukasa in #3101
- Lock in strict concurrency in NIOEchoServer by @Lukasa in #3100
- Update NIOUDPEchoClient for strict concurrency by @Lukasa in #3102
- Strict concurrency for TCP examples by @Lukasa in #3103
- Strict concurrency for the chat examples by @Lukasa in #3104
- Strict concurrency enablement for some test targets by @Lukasa in #3105
- Strict concurrency for NIOTests by @Lukasa in #3106
- Make the FileSystem world strict concurrency clean by @Lukasa in #3107
- document known Structured Concurrency violations by @weissi in #3108
Full Changelog: 2.80.0...2.81.0
SwiftNIO 2.80.0
What's Changed
SemVer Minor
- Fix WebSocketProtocolErrorHandler sending the close frame with appropriate masking key by @johnnzhou in #3040
- feat: Add
String(contentsOf: FilePath ...)
by @natikgadzhi in #3048 - feat: NIO.TimeAmount(string:) and TimeAmount.description by @natikgadzhi in #3046
- Adds
Int(buffer:)
initializer toFixedWidthInteger
types by @natikgadzhi in #3047 - Fix the HappyEyeballsResolver and core Bootstraps under strict concurrency by @Lukasa in #3062
- Clean up Sendability in Thread and ThreadPool by @Lukasa in #3081
- Make NonBlockingFileIO strict-concurrency clean by @Lukasa in #3082
SemVer Patch
- Move Isolated EL operations to EL protocol by @Lukasa in #3070
- Improve HTTPHeaders description performance by @supersonicbyte in #3063
- Fast-path isolated view for EmbeddedEventLoop by @Lukasa in #3073
- Enable optimized Isolated view path for AsyncTestingEL by @Lukasa in #3074
- Adopt optimized isolated path for SelectableEL by @Lukasa in #3075
- Update nightly CI pipelines to 6.1 instead of 6.0 by @rnro in #3076
- Improve
flatScheduleTask
by @clintonpi in #3079 - Sendability clean up for RawSocketBootstrap by @Lukasa in #3083
- Strict concurrency for SelectableEventLoop & MTELG by @Lukasa in #3084
- Add Sendable annotations to SelectorGeneric by @Lukasa in #3085
- Remove accidental static var by @Lukasa in #3086
- Add simple Sendable conformance to AsyncSequenceFromIterator by @Lukasa in #3088
- Add Sendable annotations to the syscall wrappers by @Lukasa in #3087
- Avoid using stderr explicitly by @Lukasa in #3089
- Make NIOPosix strict-concurrency clean by @Lukasa in #3090
NIOFileSystem
: Try ${TMPDIR} first for temporary directory by @natikgadzhi in #3067- undo Xcode 13 GM workaround which leads to miscompiles in Xcode 16.4 by @weissi in #3092
Other Changes
- Add allocation counter tests for isolated EL operations by @Lukasa in #3068
- Improve coverage of isolated views by @Lukasa in #3069
- Ensure we test the isolated fallback methods by @Lukasa in #3072
- more 6.0 nightly to 6.1 nightly CI changes by @rnro in #3078
- check-matrix-job.sh should tolerate unset 6.1 vars by @rnro in #3080
Full Changelog: 2.79.0...2.80.0