Skip to content

Releases: apple/swift-nio

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)

SwiftNIO 2.11.1

13 Dec 11:10
Compare
Choose a tag to compare

SemVer Patch

  • workaround failed associated type inference (#1299)
  • EventLoopFuture: more tests for andAll/whenAllComplete (#1297)

SwiftNIO 2.11.0

09 Dec 14:37
e208ab9
Compare
Choose a tag to compare

SemVer Minor

  • fix AtomicBox by deprecating it and implementing it with a CAS loop (#1287)
  • Add first(name:) to HTTPHeaders (#1282)
  • Out of pipeline byte stream decoding (#1268, patch credit to @richardalow)
  • Fast atomics (#1263, patch credit to @2bjake)
  • Make ByteBufferView mutable (#1208)
  • join the threads of a MultiThreadedEventLoopGroup on shutdown (#1261)
  • fix a number of memory leaks in the test suite (#1157)

SemVer Patch

  • save allocations on connect (#1290)
  • optimise future callback collection (#1293)
  • Remove weak var from testThreadSpecificDoesNotLeakIfThreadExitsWhilstSetOnMultipleThreads (#1295)
  • Replaced CircularBuffer's uses of checked arithmetic (+, -) (#1284, patch credit to @3a4oT)
  • stop using AtomicBox (#1289)
  • make sure ByteToMessageHandler is happy never being in a pipeline (#1288)
  • implemented Equatable for _UInt24 and _UInt56 and marked as @inlinable (#1285, patch credit to @3a4oT)
  • Webhooks upgrade complete fix (#1280, patch credit to @MrLotU)
  • document debugging with allocation tests (#1277)
  • heap: make checkHeapProperty a tests thing (#1276)
  • use Optional instead of T? to workaround SR-11777 (#1252)
  • Also collect total bytes allocated in alloc tests (#1116, patch credit to @ktoso)
  • allow deprecated tests to test deprecated functionality (#1083)
  • Fix typo in Endianness docs (#1269, patch credit to @ktoso)
  • Fix Dash docset generation. (#1256)
  • remove internal ExpressibleBy(Integer|Array)Literal conformances (#1258)
  • Added parentheses in TimeAmount constructors to generate optimal code. As Per issue #1249 (#1250, patch credit to @przala)
  • Support writing WS header to user buffer. (#1168)
  • Various other small improvements (#1273, #1251, #1278, #1272, #1259)

SwiftNIO 2.10.1

14 Nov 11:11
ff01888
Compare
Choose a tag to compare

SemVer Patch

  • Fix running run-nio-alloc-counter-tests.sh for a single test (#1245)
  • HTTP1TestServer: close accepted channel on stop (#1246)
  • fix new warnings about empty OptionSets (#1238)
  • perf tests: switch printed metric to mean (#1244)
  • fix two potential hangs in the test suite (#1240)
  • add script to easily create multi-module SwiftPM packages from one file (#1236)
  • Add withContiguousStorageIfAvailable implementation to WebSocketMaskingKey (#1237, patch credit to @richardalow)
  • performance: don't use variable initialisation outside of init (#1235)
  • Disallow zero EventLoop threads (#1230, patch credit to @richardalow)
  • Add extra WebSocket decoder benchmarks (#1219, patch credit to @emarashliev)
  • Speed up ByteBuffer setBytes slow path (#1231, patch credit to @richardalow)
  • Update ByteBuffer docs to advance write index on set operations (#1233, patch credit to @richardalow)
  • cleanup some unnecessary #if os (#1199)
  • NIOPerformanceTester: more precision and resiliency (#1229)
  • EventLoopFuture: save one allocation per future (#1224)
  • ByteBuffer: readJSONDecodable: use specified decoder (#1228)
  • update contributors (#1225)
  • Cow-box WebSocketFrame. (#1211, patch credit to @marlimox)

SwiftNIO 2.10.0

07 Nov 19:12
Compare
Choose a tag to compare

SemVer Minor

  • Add ApplicationProtocolNegotiationHandler init that takes a closure that receives the Channel (#1196, patch credit to @2bjake)
  • added a public var to extract the IP address of the SocketAddress (#1194, patch credit to @Lupurus)
  • Make SocketAddress.port mutable (#1200, patch credit to @siemensikkema)
  • Add function preconditionIsNotBlacklistedErrno (#1201, patch credit to @heidipuk)
  • Add an option to ByteBuffer.clear() to specify minimumCapacity (#1204, patch credit to @cweinberger and @Keno42)

SemVer Patch

  • Allow single test to be specified as an argument to run-nio-alloc-counter-tests.sh. (#1214, patch credit to @marlimox)
  • Use self as the decoder when decoding a ByteBuffer (#1221, patch credit to @gwynne)
  • Add inlinability to ByteBuffer getters. (#1220)
  • ByteBuffer.clear should reset the ByteBuffer._slice. (#1212, patch credit to @kam800)
  • Added an allocation benchmark for WebSocketFrameDecoder. (#1210, patch credit to @marlimox)
  • Add an benchmark for WebSocket frame decoder (#1203, patch credit to @emarashliev)
  • add socketpair to the POSIX wrappers (#1198)
  • Make future builders and scheduled tasks inlinable (#1193)
  • improve docs (#1191, #1206, patch credit to @Davidde94)
  • make use of EventLoop.flatSubmit (#1179)

SwiftNIO 2.9.0

23 Oct 18:18
Compare
Choose a tag to compare

SemVer Minor

  • Add option to reserve writable capacity to writeWithUnsafeMutableBytes (#1175, patch credit to @2bjake)
  • Add flatSubmit method to EventLoop (#1174, patch credit to @2bjake)
  • namespace ChannelOptions types (#1176, patch credit to @2bjake)
  • Add API for modifying ByteBuffer without CoW (#1173)
  • ByteBuffer: add direct Codable support (#1153)
  • add PipeChannel (#1138)
  • NIOHTTP1TestServer (#1152, patch credit to @mariosangiorgio)
  • assert EventLoopGroup::syncShutdownGracefully is not called on the event loop (#1151, patch credit to @tomerd)

SemVer Patch

  • fix tests in iOS Simulator (#1171)
  • Reduce allocations in WebSocketFrameEncoder. (#1161)
  • Add some websocket encode benchmarks. (#1159)
  • Prefer handlerAdded/handlerRemoved in websocket example (#1158, patch credit to @ktoso)
  • swift 5.1 docker setup (#1146, patch credit to @tomerd)
  • fix thread-safety of BaseSocketChannel's description (#1142, bug report credit to @drexin)
  • fix one EventLoopGroup leak in tests (#1143)
  • Fix creating HTTPResponseStatus from 418 (#1140)
  • various small readme, benchmarks, code, and docs improvements (#1137, #1172, #1170, #1178, #1164, #1163, #1162, #1145)

SwiftNIO 2.8.0

10 Sep 15:06
Compare
Choose a tag to compare

SemVer Minor

  • Allow promises to be completed with a Result<Value, Error> (#1124, patch credit to @glbrntt)
  • ChannelPipeline: fail double removal of handler (#1133, reported by @vlm)

SemVer Patch

  • fix NIODeadline/TimeAmount maths (#1136, reported by @mariosangiorgio)
  • HTTPServerUpgradeHandler: Tolerate futures from other ELs (#1134, reported by @vlm)
  • Lock: guarantee crash instead of undefined behaviour (#1131, reported by @kevints)
  • Avoid having cascade be title of all methods in jazzy docs (#1129, patch credit to @ktoso)
  • Fix doc typo: before possible -> are possible (#1122, patch credit to @tamc)

SwiftNIO 2.7.1

27 Aug 13:32
32760ea
Compare
Choose a tag to compare

SemVer Patch

  • BaseSocketChannel: accept immediately closed socket (#1121)
  • codestyle: apply suggestions from #1117 (#1118)
  • Fix dead link to process_test_files.rb in NOTICE.txt (#1119)
  • update conduct email group (#1120)

SwiftNIO 2.7.0

15 Aug 15:07
Compare
Choose a tag to compare

SemVer Minor

  • Add conditional conformances of CircularBuffer to Equatable and Hashable (#1101)
  • Conform CircularBuffer to ExpressibleByArrayLiteral (#1102)

SemVer Patch

  • NIOThreadPool: backed by NIOThreads (pthreads) instead of DispatchQueues (#1100)
  • docs: EmbeddedChannel isn't as broken as it claims (#1103)
  • Remove unused wrapper functions for atomic_flag (#1106)
  • Rename BOOL to BOOLIFY (#1107)
  • bootstraps: tolerate random EventLoops (#1108)
  • MTELG: Add EventLoopGroup identifier (#1109)
  • more compatibility with other platforms (#1110)
  • Remove cpp_magic.h import and ancient Clang compatibility hack from CNIOAtomics.h (#1111)