All Projects → AlTavares → Ciao

AlTavares / Ciao

Licence: MIT license
Publish and discover services using Bonjour

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Ciao

NetService
Swift NetService (Bonjour / Zeroconf / mDNS) implementation for Linux
Stars: ✭ 103 (+106%)
Mutual labels:  zeroconf, bonjour, mdns
GCXMulticastDNSKit
Multicast DNS framework for iOS
Stars: ✭ 16 (-68%)
Mutual labels:  carthage, zeroconf, mdns
Servus
Ad-hoc peer-to-peer iOS library
Stars: ✭ 27 (-46%)
Mutual labels:  zeroconf, bonjour
Francis
Bonjour browser for macOS and iOS
Stars: ✭ 25 (-50%)
Mutual labels:  bonjour, mdns
docker-mdns
Simple mDNS/ZeroConf demonstration of a nginx container, acessible at http://nginx.local
Stars: ✭ 25 (-50%)
Mutual labels:  zeroconf, mdns
VCVRack-Holon.ist
Holon.ist Receiver for VCV Rack
Stars: ✭ 13 (-74%)
Mutual labels:  bonjour, mdns
airprint-proxy
Advertise AirPrint printers for network printers located outside the subnet using node. GPL-3.0 licensed.
Stars: ✭ 23 (-54%)
Mutual labels:  bonjour, mdns
iOS-AirPrint-for-Mac
enable iOS Airprint Sharing on Mac OS
Stars: ✭ 24 (-52%)
Mutual labels:  bonjour, mdns
python-zeroconf
A pure python implementation of multicast DNS service discovery
Stars: ✭ 468 (+836%)
Mutual labels:  zeroconf, bonjour
MDNS Generic
mDNS Library for nRF52, SAMD21, SAMD51, SAM DUE, STM32F/L/H/G/WB/MP1, AVR Mega, RP2040-based boards, etc. using Ethernet W5x00. Supports mDNS (Registering Services) and DNS-SD (Service Discovery). Ethernet_Generic library is used as default for W5x00
Stars: ✭ 22 (-56%)
Mutual labels:  bonjour, mdns
SDWebImageHEIFCoder
A SDWebImage coder plugin to support HEIF image without Apple's Image/IO framework
Stars: ✭ 31 (-38%)
Mutual labels:  carthage
carhacking
car hacking tools
Stars: ✭ 40 (-20%)
Mutual labels:  carthage
SSCustomPullToRefresh
SSCustomPullToRefresh is an open-source library that uses UIKit to add an animation to the pull to refresh view in a UITableView and UICollectionView.
Stars: ✭ 62 (+24%)
Mutual labels:  carthage
spark-sdk-ios
DEPRECATED Particle iOS Cloud SDK. Use -->
Stars: ✭ 52 (+4%)
Mutual labels:  carthage
radiale
What if home automation was homoiconic? Just transformations of data? No more YAML!
Stars: ✭ 21 (-58%)
Mutual labels:  mdns
DPVideoMerger-Swift
Multiple videos merge in one video with manage scale & aspect ratio and also merge videos to grid matrix layout for Swift.
Stars: ✭ 49 (-2%)
Mutual labels:  carthage
GCXTrustPolicy
SSL pinning and trust validation framework for iOS
Stars: ✭ 21 (-58%)
Mutual labels:  carthage
SwiftMan
Swift extensions and utils classes
Stars: ✭ 31 (-38%)
Mutual labels:  carthage
SwiftGradients
Useful extensions for UIViews and CALayer classes to add beautiful color gradients.
Stars: ✭ 15 (-70%)
Mutual labels:  carthage
mdns-tunneller
Tunnels two (or more) mDNS domains together
Stars: ✭ 74 (+48%)
Mutual labels:  mdns

Ciao

Platforms License

Swift Package Manager Carthage compatible CocoaPods compatible

Travis

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].