Skip to content

AlTavares/Ciao

Repository files navigation

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.2'

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.2

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.2")
]

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()

Task {
    for await event in browser.browse(type: type) {
        case startedSearch:
            print("Started search")
        case stoppedSearch:
            print("Stopped search")
        
        case found(let service):
            print("Found a service: ", service)
        
        case removed(let service):
            print("Removed a service: ", service)
        
        case resolved(let result):
            switch result {
                case .success(let service):
                    print("Resolved service: ", service)
                case .failure(let error):
                    print("Failed to resolve service: ", error)
            }
    }
}

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.

About

Publish and discover services using Bonjour

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors