{"id":32110108,"url":"https://github.com/grandcentrix/gcxmulticastdnskit","last_synced_at":"2025-10-20T13:54:49.107Z","repository":{"id":48562392,"uuid":"84975493","full_name":"grandcentrix/GCXMulticastDNSKit","owner":"grandcentrix","description":"Multicast DNS framework for iOS","archived":false,"fork":false,"pushed_at":"2021-07-20T10:08:31.000Z","size":88,"stargazers_count":33,"open_issues_count":2,"forks_count":7,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-10-20T13:54:42.962Z","etag":null,"topics":["carthage","ios","ios-framework","mdns","multicast-dns","zeroconf"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grandcentrix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-14T17:01:29.000Z","updated_at":"2025-02-10T02:47:05.000Z","dependencies_parsed_at":"2022-09-12T21:21:40.745Z","dependency_job_id":null,"html_url":"https://github.com/grandcentrix/GCXMulticastDNSKit","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/grandcentrix/GCXMulticastDNSKit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grandcentrix%2FGCXMulticastDNSKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grandcentrix%2FGCXMulticastDNSKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grandcentrix%2FGCXMulticastDNSKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grandcentrix%2FGCXMulticastDNSKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grandcentrix","download_url":"https://codeload.github.com/grandcentrix/GCXMulticastDNSKit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grandcentrix%2FGCXMulticastDNSKit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280102713,"owners_count":26272390,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-20T02:00:06.978Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["carthage","ios","ios-framework","mdns","multicast-dns","zeroconf"],"created_at":"2025-10-20T13:54:46.532Z","updated_at":"2025-10-20T13:54:49.102Z","avatar_url":"https://github.com/grandcentrix.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GCXMulticastDNSKit\n [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) ![Release](https://img.shields.io/github/release/grandcentrix/GCXMulticastDNSKit.svg) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Cocoapods compatible](https://img.shields.io/cocoapods/v/GCXMulticastDNSKit.svg)](https://cocoapods.org/)\n\n\nMulticast DNS framework for iOS\n\n## Abtract\n\nGCXMulticastDNSKit is a framework that can be used to discover network services that are announced on the local network. It is a wrapper for the network services provided by Apple.\n\n## Introduction\n\nmDNS is a service to resolve hostnames on a local network without the use of a central domain name server. Instead a resolving host simply sends a DNS query to a local multicast address and the host with that name responds with a multicast message with its IP address. Multicast DNS is also used in combination with DNS based service discovery where a host that provides a network service can announce its service to the local network. Those services can then be discovered using multicast messages\n\nSee: [1] [Multicast DNS](https://en.wikipedia.org/wiki/Multicast_DNS)\n     [2] [Zeroconf Service discovery](https://en.wikipedia.org/wiki/Zero-configuration_networking#Service_discovery)\n\nThis framework currenlty provides functionality to discover services on the local network based on their service type and service name.\n\n## Installation\n\n### Cocoapods\n\n```ruby\nuse_frameworks!\n\npod 'GCXMulticastDNSKit', :git =\u003e 'https://github.com/grandcentrix/GCXMulticastDNSKit.git', :tag =\u003e 'v1.4.0'\n\n```\n\n### Carthage\n\n```ruby\ngit \"https://github.com/grandcentrix/GCXMulticastDNSKit.git\" ~\u003e 1.4.0\n\n```\n\n### Swift Package Manager\n\n[Swift Package Manager](https://swift.org/package-manager/) is a dependency manager built into Xcode. GCXMulticastDNSKit supports SPM from version 5.2.0.\n\nIf you are using Xcode 11 or higher, go to `File` -\u003e `Swift Packages` -\u003e `Add Package Dependency` and enter the [package repository URL](https://github.com/grandcentrix/GCXMulticastDNSKit.git), then follow the instructions.\n\n## Usage\n\nTo use this framework we assume that you know the service type of the services (for example `_ptp._tcp` is valid service type for PTP/IP services, another example would be `_http._tcp`). Because there can be more than one service that provides functionality you can also specify an optional prefix for service name that must match. For the example below we are looking for PTP compatible cameras from Vendor A. Those announce themselves with a PTP service type and a services name of `Vendor A (#serialnr)`. We want to find all VendorA cameras on the local network so we use `_ptp._tcp` as service type and `Vendor A` as service name prefix:\n\n```swift\nlet configurations = [DiscoveryConfiguration(serviceType: \"_ptp._tcp\",\n                                           serviceNamePrefix: \"Vendor A\")]\n\ndiscovery = Discovery(with: configurations, delegate: self)\ndiscovery?.startDiscovery()\n\n```\n\n## License\n\n```\nCopyright 2017 grandcentrix GmbH\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrandcentrix%2Fgcxmulticastdnskit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrandcentrix%2Fgcxmulticastdnskit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrandcentrix%2Fgcxmulticastdnskit/lists"}