SwiftIPAddress 是一个使用 Apple 的 Swift 编程语言解析和呈现 IP 地址的库。它不仅提供了一种惯用的 API,让开发者感觉熟悉,而且速度极快,性能优于操作系统标准库,并且经过了非常完善的测试。
以下是指导此软件包开发的目标:
这个项目完全使用纯 Swift 实现,既是一种学术实践,也是一种约束。 包装 inet_ntop
和 inet_pton
方法会很容易,但这既会限制编译器内联代码的能力,也会阻止与 Swift 未来目标的互操作性。
在云部署中内存是最受限制的资源的时代,对我来说,使用不超过内部表示绝对需要的内存至关重要。 IPv4Address
在内部用 4 个字节表示,而 IPv6Address
使用 16 个字节。 它们也都是值类型,避免了任何内存管理的需求。
当从 Swift 调用时,此库目前的性能大大超过了操作系统库。 这归功于纯 Swift 实现,无需转换成 C 友好的数据结构或从 C 友好的数据结构转换,并且可能进行更积极的内联。 这个库证明了 Swift 代码可以非常高效,甚至优于原生 C 函数。
SwiftIPAddress 使用 Swift Package Manager 安装。 它与使用 Swift 3.0 及更高版本的项目兼容。 要在您的项目中使用它,只需将以下行添加到您包的依赖项中
dependencies: [
.Package(url: "https://github.com/Andrew-Dunn/SwiftIPAddress.git",
"1.0.1"),
]
然后,只需在源文件开头导入 IPAddress
包即可直接使用。
import IPAddress
let ip = IPv6Address("2b88:b6::14")
IPv4Address
类型是一个不可变的数据结构,代表一个 IPv4 地址。
IPv6Address
类型是一个不可变的数据结构,代表一个 IPv6 地址。
版权所有 © Andrew Dunn, 2017
根据 Apache License, Version 2.0(“许可证”)授权;除非符合许可证的规定,否则您不得使用此文件。 您可以在以下位置获得许可证的副本:https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则软件是按“原样”分发的,不作任何形式的保证或条件,无论是明示的还是暗示的。 有关权限和限制的特定语言,请参阅许可证。