async-dns

Crates.ioasync-dns
lib.rsasync-dns
version0.1.1
sourcesrc
created_at2019-06-27 23:52:21.992377
updated_at2024-06-12 21:41:54.430993
descriptionA simple async DNS resolver
homepagehttps://github.com/notgull/async-dns/tree/master/async-dns#readme
repositoryhttps://github.com/notgull/async-dns/tree/master/async-dns
max_upload_size
id144161
size60,001
John Nunley (notgull)

documentation

README

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.

Commit count: 24

cargo fmt