Skip to content

Repository files navigation

deprecated See hyper-dns for similar functionality.

More info on active projects and modules at dat-ecosystem.org


dat-dns

Issue DNS lookups for Dat archives using HTTPS requests to the target host. Keeps an in-memory cache of recent lookups.

API

vardatDns=require('dat-dns')()// or, if you have a custom protocolvardatDns=require('dat-dns')({recordName: /* name of .well-known file */protocolRegex: /* RegExp object for custom protocol */,hashRegex: /* RegExp object for custom hash i.e. */,txtRegex: /* RegExp object for DNS TXT record of custom protocol */,})// example: varcabalDns=require('dat-dns')({recordName: 'cabal',hashRegex: /^[0-9a-f]{64}?$/i,protocolRegex: /^cabal:\/\/([0-9a-f]{64})/i,txtRegex: /^"?cabalkey=([0-9a-f]{64})"?$/i})// resolve a name: pass the hostname by itselfdatDns.resolveName('foo.com',function(err,key){ ... })datDns.resolveName('foo.com').then(key=> ...)// dont use cached 'misses'datDns.resolveName('foo.com',{ignoreCachedMiss: true})// dont use the cache at alldatDns.resolveName('foo.com',{ignoreCache: true})// dont use dns-over-httpsdatDns.resolveName('foo.com',{noDnsOverHttps: true})// dont use .well-known/datdatDns.resolveName('foo.com',{noWellknownDat: true})// list all entries in the cachedatDns.listCache()// clear the cachedatDns.flushCache()// configure the DNS-over-HTTPS host usedvardatDns=require('dat-dns')({dnsHost: 'dns.google.com',dnsPath: '/resolve'})// use a persistent fallback cache// (this is handy for persistent dns data when offline)vardatDns=require('dat-dns')({persistentCache: {read: async(name,err)=>{// try lookup// if failed, you can throw the original error:throwerr},write: async(name,key,ttl)=>{// write to your cache}}})// emits some events, mainly useful for logging/debuggingdatDns.on('resolved',({method, name, key})=>{...})datDns.on('failed',({method, name, err})=>{...})datDns.on('cache-flushed',()=>{...})

Spec

In detail.

Option 1 (DNS-over-HTTPS). Create a DNS TXT record witht he following schema:

datkey={key}

Option 2 (.well-known/dat). Place a file at /.well-known/dat with the following schema:

{dat-url}
TTL={time in seconds}

TTL is optional and will default to 3600 (one hour). If set to 0, the entry is not cached.

About

Issue DNS lookups for Dat archives using HTTPS requests to the target host. [ DEPRECATED - see https://github.com/martinheidegger/hyper-dns for similar functionality. More info on active projects and modules at https://dat-ecosystem.org/ ]

Topics

Resources

Stars

54 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages