Releases: apple/swift-nio
Releases · apple/swift-nio
SwiftNIO 2.18.0
SemVer Minor
- ClientBootstrap: allow binding sockets (#1490)
- ByteBuffer: add convenience initialisers (#1533)
- PipeBootstrap: fix file type change & accept 1 fd (#1543)
- Channel option to enable ECN reporting (#1506)
- Make SocketAddress Hashable. (#1532)
SemVer Patch
- fix cores count in containers (#1518, patch credit to @gautierdelorme)
- don't blow up if schedule happens during EL shutdown (#1530)
- workaround SR-12939 (#1546)
- remove fullFilePath() hack (#1544)
- remove XCTest expectations with timeouts (#1539)
- silence the #file used instead of #filepath warning (#1526)
- crash tester test suite (#1536)
- Fine grained UDP allocation tests (#1534)
- Finer grained allocation tests (#1531)
- thread takeover: test it unsets current EL (#1529)
- HTTPEncoder: fix 0 length chunks (#1524)
- Supply allocation limits for UDP allocation tests (#1523)
- Detail the best way to request a re-review (#1522)
- Extra information to contributors (#1491)
- fix linker check test (#1519)
- Add a note about failing child channel initializers (#1516)
- survive having disableSIGPIPE fail (#1515)
SwiftNIO 2.17.0
Semver Minor
- Added a new
BSDSocket
namespace, containingBSDSocket.OptionLevel
andBSDSocket.Option
for use when configuring socket options. (#1461, #1467, #1470, #1510) (Patch credit to @compnerd) - Added
BSDSocket.ProtocolFamily
andBSDSocket.AddressFamily
to replace the libc spelling for socket address families. (#1468, #1469) (Patch credit to @compnerd) - Added ECN metadata to
AddressedEnvelope
. This functionality is currently unused, but will be enabled in a future release. (#1502) - Added
ByteBuffer.writeRepeatingByte
method to provide a fastmemset
-like operation. (#1500) - Added
EventLoop.preconditionNotInEventLoop
andEventLoop.assertNotInEventLoop
to match existingEventLoop.preconditionInEventLoop
andEventLoop.assertInEventLoop
. (#1508) (Patch credit to @gwynne) - Added
MultithreadedEventLoopGroup.withCurrentThreadAsEventLoop
to support taking over an existing thread and turning it into a NIO event loop. This allows NIO programs to now be single-threaded. (#1499) - Added
EventLoop.flatScheduleTask
to provide a cleaner way to support a scheduled task that returns a future. (#1497) (Patch credit to @gwynne)
Semver Patch
- Fixed an error in the UDP echo client example where the socket would not be closed after receiving the response. (#1501)
- Cleaned up uniqueness checking in NIOHTTP1. (#1507) (Patch credit to @shekhar-rajak)
- New UDP allocation tests. (#1496)
- Improved allocation counter tests. (#1476)
- Improved allocation diffing script. (#1513)
- Removed warnings. (#1481, #1493)
- Documentation improvements. (#1474, #1482, #1483, #1505)
- Added Swift 5.3 CI. (#1498)
SwiftNIO 2.16.1
SwiftNIO 2.16.0
SemVer Minor
- Offer event loop group validation for bootstraps (#1464)
- Convenient initialisers from
ByteBuffer
(#1457)
SemVer Patch
- Selector: further default to Linux behaviour (#1447, patch credit to @compnerd)
- IO: extend
IOError
for Windows (#1460, patch credit to @compnerd) - CNIOWindows: add paranoid preprocessing (NFC) (#1459, patch credit to @compnerd)
- NIO: add module constructor for Windows (#1450, patch credit to @compnerd)
- shorten NIOThreadPool's thread names (#1466)
SwiftNIO 2.15.0
SemVer Minor
- universal bootstrapping mechanism (#1323)
- warn on execution of tasks on an already shutdown EL (#1395, patch credit to @realdoug)
- ByteToMessageDecoder: Default implementation for decodeLast should be provided (#1426, patch credit to @shekhar-rajak)
- Add offset writes and file size support to NonBlockingFileIO (#1408, patch credit to @sveamarcus)
- Add custom index methods to ByteBufferView (#1394, patch credit to @PeterAdams76)
- Provides a means to control the underlying header storage capacity. (#1451, patch credit to @ldewailly)
SemVer Patch
- the beginnings of Windows support for SwiftNIO, a fantastic effort by @compnerd
- NIOConcurrencyHelpers: make LLP64 friendly (#1402, patch credit to @compnerd)
- CNIOAtomics: define types for
uintptr_t
andintptr_t
(#1401, patch credit to @compnerd) - NIOConcurrencyHelpers: port to Windows (#1403, patch credit to @compnerd)
- NIO: undo exclusion of UDS on Windows (#1437, patch credit to @compnerd)
- CNIOSHA1: make the code more portable (#1399, patch credit to @compnerd)
- CNIOAtomics: declare atomic operations using a macro (#1400, patch credit to @compnerd)
- NIO: excise UDS support for Windows (#1404, patch credit to @compnerd)
- SelectableEventLoop: make Darwin the special case (#1449, patch credit to @compnerd)
- NIO: unify the syscall wrapper (#1423, patch credit to @compnerd)
- NIO: swap selector implementations (NFC) (#1443, patch credit to @compnerd)
- NIO: use
Posix
"namespace" more aggressively (#1439, patch credit to @compnerd) - NIO: split out
FileDescriptor
andSelectable
(#1444, patch credit to @compnerd) - NIO: move comment to right location (NFC) (#1452, patch credit to @compnerd)
- NIO: implement core counting on Windows (#1448, patch credit to @compnerd)
- Thread: port to Windows (#1424, patch credit to @compnerd)
- docs: BlockingIOThreadPool -> NIOThreadPool (#1438, patch credit to @kmahar)
- use Posix.read instead of Glibc.read for timerfd (#1432, patch credit to @shekhar-rajak)
- tests: improve tests that are supposed to throw (#1430)
- fix more warnings from master Swift compilers (#1396)
- list_topsorted_deps: multiple fixes (#1420)
- update docs generation script to work better with selinux (#1419)
- Add SSWG badge to README (#1421)
- Allow discardable results on NIOAtomic for mutating functions (#1417, patch credit to @kylebrowning)
- Stop copying Strings into Arrays for SHA1 (#1413, patch credit to @trungducc)
- undo @convention(c) hacks in System.swift (#1412, patch credit to @shekhar-rajak)
- Use UInt instead of ObjectIdentifier in promiseCreationStore (#1411, patch credit to @shekhar-rajak)
- test that massive chunked encoding chunks behave sensibly (#1407)
- other minor improvements (#1455, #1454, #1446, #1434, #1433, #1419, #1398)
SwiftNIO 2.14.0
SemVer Minor
- apply ChannelOptions before channel initializer runs (#1372)
- Reserve capacity in terms of writable bytes (#1378)
SemVer Patch
- add AcceptHandler after serverChannelInitializer runs (#1393)
- improve pod updater script (#1391)
- Include stackdiff-ing in the debugging-allocations doc (#1384)
- add Swift 5.2 to the readme (#1386)
- ByteBuffer: make getInteger for UInt8 faster (#1380)
- update vendored code & attribute it correctly (#1382)
- Provide descriptions for EventLoopError (#1381)
- get IOError down to git in an existential container (#1355) (#1376, patch credit to @dfriedm3)
- dev/stackdiff-dtrace: stack aggregation diffing script (#1373)
- SR-12094 is fixed, no need to skip tests (#1371)
- improve docker security (#1375)
- Avoid curried thunks (workaround SR-12115) (#1374)
- switch swift-tools-version to 5.0 for integration tests (#1369)
- include clang modularised headers last (#1368)
- fix 5.2 builds (#1366)
- fix #1363: fix race between EL exit and wakeup call (#1364)
- add SAL (Syscall Abstraction Layer) and new SALChannelTests
- Recursive file reading not building up EventLoopFuture chain (#1353, patch credit to @fabianfett)
- adding an extra test for reading many chunks (#1356)
- fix docker setup for development snapshots (#1357)
- update contributors (#1350)
- make tests faster (#1367, #1365)
SwiftNIO 2.13.1
This version contains security related content: please apply the update as soon as possible.
Semver Minor
- Updated http-parser to bring in the fix for Node.JS CVE-2019-15605, which also affected SwiftNIO. This allowed remote peers to launch request smuggling attacks on SwiftNIO. A SwiftNIO-specific CVE is forthcoming, but as this vulnerability is already public knowledge we judged it to be important to ship a patch before the CVE is ready. Reported by ZeddYu Lu. (df93900)
SwiftNIO 1.14.2
This version contains security related content: please apply the update as soon as possible.
Semver Minor
- Updated http-parser to bring in the fix for Node.JS CVE-2019-15605, which also affected SwiftNIO. This allowed remote peers to launch request smuggling attacks on SwiftNIO. A SwiftNIO-specific CVE is forthcoming, but as this vulnerability is already public knowledge we judged it to be important to ship a patch before the CVE is ready. Reported by ZeddYu Lu. (#1388)
SwiftNIO 2.13.0
SemVer Minor
- Add setSubstring/writeSubstring to ByteBuffer. (#1346, patch credit to @cpriebe)
- Add bindTimeout function to ServerBootstrap (#1349, patch credit to @cpriebe)
- support pread (#1324)
- Correct NIOHTTPWebClientSocketUpgrader to NIOHTTPWebSocketClientUpgrader (#1336, patch credit to @tigerpixel)
- ByteBuffer is now Hashable (#1326, patch credit to @fabianfett)
SemVer Patch
- Rename misnamed closure parameter argument in ServerBootstrap.bind0 (#1347, patch credit to @cpriebe)
- improve flushNow re-entrancy protection (#1348)
- improve flushNow behaviour tests & description (#1345)
- flushes from channelWritabilityChanged callbacks get lost (#1344)
- Fix documentation for HTTPRequestDecoder. (#1342, patch credit to @vsapsai)
- Read exactly UInt64's size from timerfd (#1340, patch credit to @Bouke)
- Change the byte to message decoder verifier example to be correct. (#1338, patch credit to @tigerpixel)
- Initializing HTTPMethod with String picks explicit value over catch all RAW(value) (#1329, patch credit to @fabianfett)
- Faster Base64 Encoding for NIOWebsocket connections (#1328, patch credit to @fabianfett)
- docker: support Swift 5.2 dev snapshots (#1343)
- Fix documenation in HTTPHeaders. (#1335)
- fix bogus warnings in newer Swift versions (#1325)
SwiftNIO 2.12.0
SemVer Minor
- add descriptions to EventLoop and NIOThread (#1317)
- fix EVFILT_EXCEPT loop if autoRead is off on Darwin (#1305)
- Remove example binaries from products (#1303, patch credit to @johnlinvc)
SemVer Patch
- Drain scheduled tasks on EmbeddedChannel finish() (#1319)
- make SelectableEventLoop.description not take a lock (#1318)
- HEAD and DELETE may have bodies. (#1314, bug report credit to @prafsoni)
- Use actual element count of PriorityQueue for its description (#1296, patch credit to @adtrevor)
- close kqueue/epoll fds in Selector.close (#1308)
- SelectableEventLoop: Call wakeup less frequently (#1301)
- Create a ClientBootstrap protocol (#1253, patch credit to @Yasumoto)
- add an allocation counter test for scheduling tasks (#1315)
- fix race in testConnect (#1310)
- accept: don't do unnecessary dodgy pointer things (#1306, bug report credit to @milseman)
- remove phantom publics from EventLoop and Heap (#1298)
- don't assume realloc never happens (#1300)
- Other small improvements (#1312, #1311, #1304)