NIOExtras
NIOExtras 是一个存放与 NIO 相关但非核心的代码的好地方。它也可以用来孵化那些在 core-NIO 中可行但操作繁琐的任务的 API。
什么是有益于 NIOExtras 的贡献?
- 一组协议编码器/解码器对(也称为 "codec"),它经常使用,但足够小,不需要自己的仓库
- 用于实现一个比使用 core-NIO 更困难的任务的辅助工具
代码质量/稳定性
所有代码都将通过像 SwiftNIO 项目其他仓库一样的代码审查。
swift-nio-extras
是 SwiftNIO 2 仓库家族的一部分,并依赖于以下内容:
swift-nio
,版本 2.30.0 或更高。- Swift 5.2。
- 系统上安装了
zlib
及其开发头文件。但不用担心,您几乎可以在任何可以编译代码的 UNIX 系统上找到zlib
。
为了依赖于 swift-nio-extras
,请将以下内容放在您的 Package.swift
的 dependencies
中
.package(url: "https://github.com/apple/swift-nio-extras.git", from: "1.0.0"),
对旧版 Swift 版本的支持
SwiftNIO(2.29.x 及以下版本)和 SwiftNIOExtras(1.9.x 及以下版本)支持 Swift 5.0 和 5.1。
在 nio-extras-0.1
分支上,您可以找到 SwiftNIO 1 系列的 swift-nio-extras
版本。它需要 Swift 4.1 或更高版本。
当前内容
QuiescingHelper
:帮助通过通知用户代码所有先前打开的连接已关闭来使服务器进入休眠状态。LineBasedFrameDecoder
在行终止符处拆分传入的ByteBuffer
。FixedLengthFrameDecoder
根据固定字节数拆分传入的ByteBuffer
。LengthFieldBasedFrameDecoder
根据包含在缓冲区内的固定长度头部中指定的字节数拆分传入的ByteBuffer
。LengthFieldPrepender
在出去的ByteBuffer
前面预置字节数作为固定长度头部。可以与LengthFieldBasedFrameDecoder
配对使用。RequestResponseHandler
将请求和承诺与相应的响应相匹配。HTTPResponseCompressor
压缩每个 HTTP/1 响应消息的内容。DebugInboundsEventHandler
打印出通过ChannelPipeline
传递的所有入站事件。DebugOutboundsEventHandler
打印出通过ChannelPipeline
传递的所有出站事件。WritePCAPHandler
是一个ChannelHandler
,它可以将包含您可以用 Wireshark/tcpdump 检查的ChannelPipeline
流量的.pcap
写入。