Skip to content

Latest commit

 

History

History

async-dns

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

async-dns

This crate provides asynchronous DNS lookups.

In asynchronous Rust code, it is necessary to resolve URL names using DNS. In most cases, this is done by calling getaddrinfo on a blocking threadpool. However, since DNS is a UDP-based protocol, it doesn't make much sense to block on a thread when fully asynchronous options are available.

This crate provides a fully asynchronous alternative, based on the following mechanisms:

  • On Windows, it uses the DnsQueryEx function, which allows for non-blocking DNS queries.
  • On Unix, it uses a custom implementation of DNS provided by the dns-protocol crate. async-fs is used to read files and async-io is used for the actual UDP packets.

It returns the list of addresses that it found to be associated with the given name.

License

Dual licensed under the MIT and Apache 2.0 licenses.