Skip to content

Releases: tayloraswift/swift-ip

0.3.3

16 Jan 00:42
Compare
Choose a tag to compare

This release pins the library’s swift-bson dependency to 1.0.0 ..< 2.0.0.

0.3.2

15 Jan 01:57
Compare
Choose a tag to compare

Updates the library source to make it compile with the latest swift-bson

Full Changelog: 0.3.1...0.3.2

0.3.0

29 Nov 00:22
0ef3a81
Compare
Choose a tag to compare

What's Changed

  • rework the binary format to do less work on the server (decoder) and potentially use less memory as well by @tayloraswift in #6

Full Changelog: 0.2.0...0.3.0

0.2.0

25 Nov 02:35
947e04b
Compare
Choose a tag to compare

This release adds ASN model types, and an API for performing bisection search on IP address ranges.

Full Changelog: 0.1.2...0.2.0

0.1.2 (Initial release)

17 Oct 22:54
Compare
Choose a tag to compare

This is the initial public release of the swift-ip library — a portable, Foundation-free library for working with IP addresses.

Why use swift-ip?

The IP address types defined by the Network framework are Darwin-only, which precludes their use in server-side code.

The swift-nio library provides a multi-platform SocketAddress type, but it is heap-allocated and reference-counted, and requires linking against the entire NIOCore module. This makes it unsuitable as a high-performance currency type for purposes such as firewall implementations or metrics collection.

Who is using swift-ip?

The Swiftinit documentation index currently uses the swift-ip library to verify clients (such as Googlebot and GitHub Webhooks) and combat abuse.

Requirements

The swift-ip library requires Swift 6.0 or later. This is because IP.V6 uses UInt128.

Platform Status
🐧 Linux Tests
🍏 Darwin Tests
🍏 Darwin (iOS) iOS
🍏 Darwin (tvOS) tvOS
🍏 Darwin (visionOS) visionOS
🍏 Darwin (watchOS) watchOS

Check deployment minimums