{"id":15646462,"url":"https://github.com/martinheidegger/hyper-dns","last_synced_at":"2025-04-30T12:22:40.279Z","repository":{"id":52899478,"uuid":"352756459","full_name":"martinheidegger/hyper-dns","owner":"martinheidegger","description":"DNS lookup for dat/hyper archives","archived":false,"fork":false,"pushed_at":"2021-09-16T00:03:37.000Z","size":274,"stargazers_count":13,"open_issues_count":12,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-09T07:49:12.970Z","etag":null,"topics":["cabal","dat","dns-lookup","hyper-dns","hypercore-protocol"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/martinheidegger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"docs/code_of_conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["martinheidegger"]}},"created_at":"2021-03-29T19:09:13.000Z","updated_at":"2024-06-24T08:41:05.000Z","dependencies_parsed_at":"2022-08-25T05:51:57.201Z","dependency_job_id":null,"html_url":"https://github.com/martinheidegger/hyper-dns","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martinheidegger%2Fhyper-dns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martinheidegger%2Fhyper-dns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martinheidegger%2Fhyper-dns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martinheidegger%2Fhyper-dns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/martinheidegger","download_url":"https://codeload.github.com/martinheidegger/hyper-dns/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251700974,"owners_count":21629847,"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":["cabal","dat","dns-lookup","hyper-dns","hypercore-protocol"],"created_at":"2024-10-03T12:12:59.909Z","updated_at":"2025-04-30T12:22:40.220Z","avatar_url":"https://github.com/martinheidegger.png","language":"JavaScript","funding_links":["https://github.com/sponsors/martinheidegger"],"categories":[],"sub_categories":[],"readme":"# hyper-dns\n\nAdvanced resolving of decentralized web links using different name systems such as DNS Txt entries and `.well-known` https lookups locations.\nIt implements various naming systems such as [dat][], [hyper][] and [cabal][] but is extensible to support other systems as well.\n\n[hyper]: https://hypercore-protocol.org/\n[dat]: https://www.datprotocol.com/deps/0005-dns/\n[cabal]: https://cabal.chat/\n[ara]: https://ara.one/\n\n## 🚀 Basic API\n\nAfter installing it through [npm][hyper-dns-npm], you can simply run it like this:\n\n```js\nconst { resolveProtocol, resolve, resolveURL } = require('hyper-dns')\nconst protocol = 'dat'\nconst domain = 'dat-ecosystem.org'\nconst key = await resolveProtocol(protocol, domain)\n```\n\n\u003e Note: You may need to wrap it in a `async` function until [top level async/await][] lands.\n\nThat's it! 🎉 - in the `key` variable you will get the `dat` key or `null`, if it can't be found.\n\n[hyper-dns-npm]: https://npmjs.com/package/hyper-dns\n[top level async/await]: https://github.com/tc39/proposal-top-level-await\n\n## 🧙‍♀️ What is this magic?\n\nDifferent decentralized web systems have different means to resolve _\"names\"_ to a decentralized document.\n\n`hyper-dns` contains a variety of implementations. Many are using [DNS TXT records][] that contain a key of specified pattern, but other means are possible as well. − (more in the [Protocol Guide][])\n\nThe power of `hyper-dns` in comparison to other, protocol-specific implementations is that it has a shared cache for all protocols, it works in he browser and does a list of things well. − (more in the [Architecture Overview][])\n\n[DNS TXT records]: https://en.wikipedia.org/wiki/TXT_record\n\n## 👩‍🎓 Further reading\n\n- [Architecture Overview][] _…to learn how caching and other things work._ 🕵️‍♀️\n- [API documentation][] _…for getting to know the API in detail._ 🧑‍💻\n- [Contribution Guide][] _…because help is always welcome._ 🥳\n- [Protocol Guide][] _…for current protocols and adding new ones._ 🤠\n\n[Architecture Overview]: ./docs/architecture.md\n[API documentation]: ./docs/api.md\n[Contribution Guide]: ./docs/contributing.md\n[Protocol Guide]: ./docs/protocol.md\n\n## 📜 License\n\n[MIT License](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartinheidegger%2Fhyper-dns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmartinheidegger%2Fhyper-dns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartinheidegger%2Fhyper-dns/lists"}