lukasa
(Cory Benfield)
1
I'm delighted to announce that the SwiftNIO project has just released SwiftNIO version 1.7.0. This release contains 19 changes from 7 contributors. Huge thanks to everyone who contributed!
The full release is available on the GitHub releases page, but the release notes are reproduced below:
Semver Minor
- Added
ChannelCore.removeHandlers to help implementers building custom channels do correct channel shutdown.
- Added initial support for sending quiescing signals to
Channels, and support for these signals to AcceptHandler and HTTPServerPipelineHandler.
- Added executable product
NIOPerformanceTester to run standardised NIO performance tests.
- Made
EventLoopFuture.hopTo(eventLoop:) public: while it was introduced in 1.3.0 it was accidentally left internal.
Semver Patch
- Improved the resilience of
ByteToMessageDecoder against re-entrant calls to decode.
- Improved performance of writing
Sequences to ByteBuffer objects in cases where the standard library has fast-path access.
- Fixed an issue where we could accidentally corrupt headers or URIs when parsing HTTP/1 messages due to re-entrant calls to
decode.
- Enhanced
SocketChannel objects to register themselves with the Selector lazily, allowing them to more easily be used without needing to handle their registration and binding/connection very carefully.
- Removed some warnings when compiling in Swift 4.2 mode.
- Removed a
String allocation when reading Connection headers to determine keep-alive state for HTTP/1.
- Attempted to use
http_parser's detected keep-alive status as much as possible in server applications, reducing the computation overhead of checking keep-alive status in most cases.
- Removed some reliance on implicit importing of header files on Linux.
- Fixed minor invalid pointer type assumption.
- Fixed broken 32-bit support.
- Miscellaneous tooling and code quality improvements. (#390, #394, #398, #403)
9 Likes