Repository navigation
Ciao 4.0.0
- Swift 6 concurrency API with Sendable service/TXT values, actor-owned browsers/publications, bounded async resolution, cancellation, and explicit discovery sessions.
- Network.framework browsing/listeners and DNS-SD independent resolution, external-port registration, and service-type enumeration.
- Binary-safe TXT records, flag/empty values, live updates and clearing, per-interface service identity, and typed errors.
- SwiftPM-only distribution; removes CocoaPods/Carthage framework packaging and Travis CI.
- GitHub Actions validates package tests, supported platform builds and SwiftUI samples. Tagged releases also require live Bonjour checks before creating a GitHub Release.
- SwiftUI publisher/browser and standalone Bonjour Browser app playgrounds for iOS and Mac Catalyst with manifest-based local-network configuration and explicit cleanup. No XcodeGen or checked-in Xcode project is required; the library still supports native macOS.
- Swift Testing unit/lifecycle tests and separate bounded Bonjour integration tests.
Breaking changes: the callback/NetService API is replaced. Minimum requirements are Swift 6.0, iOS/tvOS 18, and macOS 15. See Migration.md for mappings and cancellation requirements.
Known limitations
- The Bonjour Browser sample uses a sample-local
NetServiceBrowserasync adapter for service-type enumeration. The user confirmed it works in the iOS simulator. On Mac Catalyst, enumeration fails with Foundation error-72008(domain10); the DNS-SD implementation also failed with-65555, despite enabled Local Network access and Apple Development signing. This Mac Catalyst limitation remains unresolved. - Broad Bonjour browsing on physical iOS devices requires Apple's approved multicast entitlement and matching provisioning. The sample does not provide that entitlement.
- Hosted Bonjour integration checks exercise same-host discovery; cross-device and physical-device permission behavior still require validation.
What's Changed
- Update README.MD to use latest 2.1.2 release by @joshbillions in #9
- Move CiaoBrowser to AsyncStream with CiaoBrowserEvent enum by @joshbillions in #10
- Modernize Ciao with Swift 6 concurrency, SPM, and GitHub Actions by @AlTavares in #11
New Contributors
- @joshbillions made their first contribution in #9
- @AlTavares made their first contribution in #11
Full Changelog: 2.1.2...v4.0.0