lukasa
(Cory Benfield)
1
I'm delighted to announce that the SwiftNIO project has just released SwiftNIO version 1.9.0. This release contains 34 changes from 14 contributors, including 7 first-time contributors. Huge thanks to everyone who contributed! The full release notes are available on GitHub, but are reproduced below:
Semver Minor
- Added an API for scheduling repeated tasks on an
EventLoop, via EventLoop.scheduleRepeatedTask, as well as a new RepeatedTask type.
- Made
CircularBuffer conform to BidirectionalCollection, RandomAccessCollection, and RangeReplaceableCollection, substantially increasing its utility.
- Split error-handling for
WebSocketFrameDecoder out to a new ChannelHandler, WebSocketProtocolErrorHandler. Allowed users to disable the default error handling to implement their own.
- Added support for non-blocking file writes with
NonBlockingFileIO.write.
- Added support for iterating over all
EventLoops in an EventLoopGroup.
- Deprecated
ByteBuffer.changeCapacity, replaced it with ByteBuffer.reserveCapacity. Improved performance.
- Added two typealiases for internal data structures to the public declaration of
ByteBuffer, _Index and _Capacity. These are public to work around a limitation of older Swift 4 releases, and should not be used from user code.
Semver Patch
- Silenced some warnings.
- Prevented 100% CPU hot-looping on macOS when using
autoRead false.
- Fixed rare crash in example WebSocket server.
- Fixed an issue where creating a
ByteBufferView over the entire storage of a ByteBuffer would cause a crash.
- Fixed the example HTTP server to correctly respond to multiple pipelined dynamic requests on the same connection.
- Changed the
docker-compose configuration to line-buffer output to the console.
- Fixed logical processor enumeration to use faster, cross-platform API.
- Improvements to code internals on 32-bit platforms.
- Correctly handle
ContiguousCollection implementations that provide pointers that are larger than the number of elements they report with .count.
- Improved
HTTPServerUpgradeHandler to treat protocol upgrade names case-insensitively.
- Fixed a bug where we could inadvertently produce no-op events to
SelectableEventLoops instead of ignoring them.
- Forward debugging information when chaining
Futures using mapIfError.
- Updated
http_parser.
- Removed unnecessary memory binding in
Thread.
- Documentation improvements.
- Testing improvements.
- Minor code cleanups.
11 Likes