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:
- Added an API for scheduling repeated tasks on an
EventLoop.scheduleRepeatedTask, as well as a new
RangeReplaceableCollection, substantially increasing its utility.
- Split error-handling for
WebSocketFrameDecoderout to a new
WebSocketProtocolErrorHandler. Allowed users to disable the default error handling to implement their own.
- Added support for non-blocking file writes with
- Added support for iterating over all
EventLoops in an
ByteBuffer.changeCapacity, replaced it with
ByteBuffer.reserveCapacity. Improved performance.
- Added two typealiases for internal data structures to the public declaration of
_Capacity. These are public to work around a limitation of older Swift 4 releases, and should not be used from user code.
- Silenced some warnings.
- Prevented 100% CPU hot-looping on macOS when using
- Fixed rare crash in example WebSocket server.
- Fixed an issue where creating a
ByteBufferViewover the entire storage of a
ByteBufferwould cause a crash.
- Fixed the example HTTP server to correctly respond to multiple pipelined dynamic requests on the same connection.
- Changed the
docker-composeconfiguration 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
ContiguousCollectionimplementations that provide pointers that are larger than the number of elements they report with
HTTPServerUpgradeHandlerto 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
- Removed unnecessary memory binding in
- Documentation improvements.
- Testing improvements.
- Minor code cleanups.