Skip to content

Releases: apple/swift-nio

SwiftNIO 2.18.0

08 Jun 16:52
120acb1
Compare
Choose a tag to compare

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

12 May 13:54
c5fa0b4
Compare
Choose a tag to compare

Semver Minor

  • Added a new BSDSocket namespace, containing BSDSocket.OptionLevel and BSDSocket.Option for use when configuring socket options. (#1461, #1467, #1470, #1510) (Patch credit to @compnerd)
  • Added BSDSocket.ProtocolFamily and BSDSocket.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 fast memset-like operation. (#1500)
  • Added EventLoop.preconditionNotInEventLoop and EventLoop.assertNotInEventLoop to match existing EventLoop.preconditionInEventLoop and EventLoop.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

05 May 10:58
Compare
Choose a tag to compare

SwiftNIO 2.16.1

  • make compiles with Swift 5.3 compilers warning free (#1493 / #1498)

SwiftNIO 2.16.0

02 Apr 17:19
e876fb3
Compare
Choose a tag to compare

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

19 Mar 18:01
a27a077
Compare
Choose a tag to compare

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 and intptr_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 and Selectable (#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

13 Feb 19:53
16ab4d6
Compare
Choose a tag to compare

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

10 Feb 15:11
Compare
Choose a tag to compare

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

10 Feb 15:32
8da5c5a
Compare
Choose a tag to compare

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

22 Jan 16:24
Compare
Choose a tag to compare

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

20 Dec 17:41
Compare
Choose a tag to compare

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)