{"id":21570405,"url":"https://github.com/arirusso/minidisc","last_synced_at":"2025-03-18T06:14:07.552Z","repository":{"id":56883804,"uuid":"95047098","full_name":"arirusso/minidisc","owner":"arirusso","description":"Mini service discovery in Ruby","archived":false,"fork":false,"pushed_at":"2019-03-02T15:52:40.000Z","size":31,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-26T06:47:08.314Z","etag":null,"topics":["discovery","ruby","service-discovery"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arirusso.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-21T21:18:55.000Z","updated_at":"2019-03-02T15:53:46.000Z","dependencies_parsed_at":"2022-08-20T13:10:51.121Z","dependency_job_id":null,"html_url":"https://github.com/arirusso/minidisc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arirusso%2Fminidisc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arirusso%2Fminidisc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arirusso%2Fminidisc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arirusso%2Fminidisc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arirusso","download_url":"https://codeload.github.com/arirusso/minidisc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244166759,"owners_count":20409179,"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","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":["discovery","ruby","service-discovery"],"created_at":"2024-11-24T11:12:32.835Z","updated_at":"2025-03-18T06:14:07.522Z","avatar_url":"https://github.com/arirusso.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MiniDisc\n\nMini service discovery in Ruby\n\n## Description\n\nI recently extracted MiniDisc from a personal project I've been working on. It offers a single line interface for common patterns in service discovery that I'd been redundantly implementing.\n\nUnder the hood it wraps the DNSSD gem and is cross compatible with services using that.  It adds helpers for common tasks like matching services by name, dynamically overriding discovery, error handling, logging\n\n## Requirements\n\n### Linux\n\n* dns-sd\n* avahi 0.6.25+ (plus libavahi-compat-libdnssd-dev on Debian)\n\n## Usage\n\nTo broadcast a service use something like:\n\n```ruby\nrequire \"minidisc\"\n\nMiniDisc::Network.add(:http, 8080, id: \"my-service-instance1\")\n```\n\nTo discover other services use\n\n```ruby\nMiniDisc::Network.find_all(:http, id: /^my-service/) do |services|\n  ...\nend\n```\n\n## Installation\n\n`gem install minidisc`\n\nor when Bundler, add this to your Gemfile\n\n`gem \"minidisc\"`\n\n## License\n\nApache 2.0, See LICENSE file\n\nCopyright (c) 2017-2019 [Ari Russo](http://arirusso.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farirusso%2Fminidisc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farirusso%2Fminidisc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farirusso%2Fminidisc/lists"}