Ciao

2.1.2

Publish and discover services using Bonjour
AlTavares/Ciao

What's New

2.1.2

2024-04-18T14:34:44Z

What's Changed

  • feat: add search status handlers by @TheNoim in #7
  • fixed a crash while parsing text record dictionary by @IngoKoch in #8

New Contributors

Full Changelog: 2.1.1...2.1.2

Ciao

Join the Ciao Project as a Contributor!

🚀 We're inviting open-source enthusiasts to contribute! 🚀

Despite a pause in updates, Ciao is operational and ready for enhancements. Your contributions can breathe new life into it!

How You Can Help:

  • Code Enhancements: From minor tweaks to major features, all contributions are welcome.
  • Documentation Updates: Help keep our documentation current and user-friendly.
  • Community Engagement: Support users and enrich discussions.

Start by forking the repo, create your feature branch, and dive into our issues. Every contribution is a step towards advancement!

Platforms License

Swift Package Manager Carthage compatible CocoaPods compatible

Lib to publish and find services using mDNS

Requirements

  • iOS 8.0+ / Mac OS X 10.10+ / tvOS 9.0+
  • Xcode 9.0+

Installation

CocoaPods

CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

$ gem install cocoapods

To integrate Ciao into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

pod 'Ciao', '~> 2.1.1'

Then, run the following command:

$ pod install

Carthage

Carthage is a decentralized dependency manager that automates the process of adding frameworks to your Cocoa application.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate Ciao into your Xcode project using Carthage, specify it in your Cartfile:

github "AlTavares/Ciao" ~> 2.1.1

Swift Package Manager

To use Ciao as a Swift Package Manager package just add the following in your Package.swift file.

dependencies: [
    .package(url: "https://github.com/AlTavares/Ciao.git", from: "2.1.1")
]

Usage

Server

let ciaoServer = CiaoServer(type: ServiceType.tcp("ciaoserver"))

ciaoServer.start { (success) in
    print("Server started:", success)
}
ciaoServer.txtRecord = ["someKey": "someValue"]

Browser

let ciaoBrowser = CiaoBrowser()

// get notified when a service is found
browser.serviceFoundHandler = { service in
    print("Service found")
    print(service)
}

// register to automatically resolve a service
browser.serviceResolvedHandler = { service in
    print("Service resolved")
    print(service)
    print(service.hostName)
    print(service.txtRecordDictionary)
}

browser.serviceRemovedHandler = { service in
    print("Service removed")
    print(service)
}

ciaoBrowser.browse(type: type) 

Resolver

Optionally you can also use the resolver to any NetService instance

var resolver = CiaoResolver(service: service)
resolver?.resolve(withTimeout: 0) { (result: Result<NetService, ErrorDictionary>) in
    print(result)
}

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

License

Ciao is released under the MIT license. See LICENSE for details.

Description

  • Swift Tools 5.0.0
View More Packages from this Author

Dependencies

  • None
Last updated: Sun Apr 21 2024 08:26:24 GMT-0900 (Hawaii-Aleutian Daylight Time)