Releases: apple/swift-nio
Releases · apple/swift-nio
SwiftNIO 2.20.0
SemVer Minor
- Define NIOBSDSocket namespace (#1471, patch credit to @compnerd)
- Explicit Congestion Notification for UDP (#1473, #1587, #1590, #1591, #1593, #1594, #1596)
SemVer Patch
- Improve performance when removing the last element of a CircularBuffer (#1584, patch credit to @luoxiu)
- Improve pointer hygeine in SocketAddresses.swift (#1588)
Other Changes
- Don't install Jazzy on Xenial (#1597)
SwiftNIO 2.19.0
SemVer Minor
- ClientBootstrap: allow binding sockets (#1490)
- Shorthand way of setting options in universal bootstrap (#1547)
- Allow EmbeddedEventLoop to advanceTime(to:) a deadline (#1557)
- Make
TimeAmount
Hashable
(#1571) - Make array ByteBuffer initialiser public (#1573)
SemVer Patch
- Add synchronous option to Trunk push (#1551, patch credit to @Jake-Prickett)
- Fix RepeatedTask scheduling logic to run on the correct EL (#1567)
- Fix a couple of small cosmetic issues (#1582, patch credit to @gwynne)
- Update supported version in README (#1517)
- Execute tasks scheduled at the same time in order on EmbeddedEventLoop (#1540)
- Fix inappropriate language in NIO (#1554)
- HTTP: assert that user doesn't set CL & TE:chunked (#1556)
- Properly allow ThreadPool to be started multiple times. (#1572)
- Various small issues (#1560)
- Various small testing improvements (#1583, #1581, #1578, #1569, #1566, #1565, #1562, #1549)
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)