swift-cidr 0.6.1 connects the in-tree CIDRNIO SocketAddress bridge to the
fixed-size, network-byte-order octet projections introduced in 0.6.0.
Integer-backed identity and CIDR math remain canonical.
Highlights
- On Linux and Apple OS 26 or later, IPv4 and IPv6 socket conversions transfer
address bytes throughIPv4Address.octetsandIPv6Address.octets. - Preserves address bits, including prefixed IPv4 host bits, during outbound
projection. - Materializes
/32for inbound IPv4 and/128for inbound IPv6 because
SocketAddresscarries no prefix length. - Leaves IPv4 network and directed-broadcast validation, IPv6 flow-info and
scope-ID rejection, and port handling unchanged. - Keeps
ByteBufferon its existing integer network-byte-order path;
CIDRPOSIXis unchanged.
The InlineArray is a transient, owned transfer value copied to or from the
POSIX socket field. It is not SocketAddress storage, a zero-copy
representation, or a borrowed View.
Compatibility
This patch release adds no public symbols and changes no public signatures or
availability compared with 0.6.0. The package retains its Swift 6.2 tools floor
and macOS 15 and iOS 18 deployment floors.
Because InlineArray is not back-deployed, supported pre-26 Apple deployments
retain the behavior-equivalent private integer network-byte-order bridge.
Existing .upToNextMinor(from: "0.6.0") dependency constraints can resolve
this update without source or deployment changes.
The allocation-free evidence applies to the core octet projection itself; it
is not a claim that constructing a complete SwiftNIO SocketAddress performs
no allocations.
Validation
- The annotated
0.6.1tag is SSH-signed and GitHub-verified. - 180 tests across 22 suites pass in debug and release validation, including 22
CIDRNIOtests. - Swift 6.2 and Swift 6.3 Linux CI, macOS 26/Xcode 26.6 CI, and the macOS
15/Xcode 26.3 compatibility lane pass. CIDRNIObuilds at the retained macOS 15 and iOS 18 simulator deployment
floors.- Exact IPv4 and IPv6 socket-byte identity, host-bit preservation, inbound
prefix normalization, and existing rejection contracts are covered. - Public API comparison with 0.6.0 reports no breaking changes; normalized
CIDRNIOsymbol graphs have no declaration or availability delta. - Same-machine measurements preserve allocation and ARC counts for all four
existing CIDRNIO socket benchmarks. Whole-SocketAddresstimings remain
informational. - DocC validation passes with warnings treated as errors.
Full details are available in
Documentation/ReleaseNotes/0.6.1.md.