Releases: apple/swift-nio
Releases · apple/swift-nio
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)
SwiftNIO 2.11.1
SwiftNIO 2.11.0
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
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
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 theByteBuffer._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
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
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
SwiftNIO 2.7.0
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
toBOOLIFY
(#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)