mirror of
https://github.com/apple/swift-nio.git
synced 2026-05-20 20:30:36 +00:00
7840b6b067
Motivation: Since Swift 5.5 and [SE-0299](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0299-extend-generic-static-member-lookup.md) it is possible to add static members to protocols which are discoverable through the shorthand dot syntax. This change reduces type repetition and improves call-site legibility. Modifications: Added extensions for ChannelOption with static members where Self is bound to a concrete type. Result: ChannelOption types can be used with the leading dot syntax. For eg: ``` //before .channelOption(ChannelOptions.explicitCongestionNotification, value: true) .channelOption(ChannelOptions.socketOption(.so_reuseaddr), value: 1) //after .channelOption(.explicitCongestionNotification, value: true) .channelOption(.socketOption(.so_reuseaddr), value: 1) ```
NIOEchoServer
This sample application provides a simple echo server that sends clients back whatever data they send it. Invoke it using one of the following syntaxes:
swift run NIOEchoServer # Binds the server on ::1, port 9999.
swift run NIOEchoServer 9899 # Binds the server on ::1, port 9899
swift run NIOEchoServer /path/to/unix/socket # Binds the server using the given UNIX socket
swift run NIOEchoServer 192.168.0.5 9899 # Binds the server on 192.168.0.5:9899