Crate agnostic_dns

Source
Expand description

Agnostic DNS

agnostic-dns is an agnostic abstraction layer over hickory-dns.

github LoC Build codecov

docs.rs crates.io crates.io license

§Introduction

agnostic-dns is an async runtime agnostic layer over hickory-dns.

Builtin supports runtimes:

  • tokio
  • async-std
  • smol

§Installation

[dependencies]
agnostic-dns = "0.1"
  • tokio

    agnostic-dns = { version = "0.1", features = ["tokio"] }
  • smol

    agnostic-dns = { version = "0.1", features = ["smol"] }
  • async-std

    agnostic-dns = { version = "0.1", features = ["async-std"] }
§License

agnostic-dns is under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE, LICENSE-MIT for details.

Copyright (c) 2025 Al Liu.

Re-exports§

pub use agnostic_net as net;

Structs§

AgnosticTime
DNS time
AsyncConnectionProvider
Create DnsHandle with the help of AsyncRuntimeProvider.
AsyncDnsUdp
DNS udp
AsyncRuntimeProvider
Defines which async runtime that handles IO and timers.
AsyncSpawn
Async spawner
NameServerConfig
Configuration for the NameServer
NameServerConfigGroup
A set of name_servers to associate with a ResolverConfig.
ResolverConfig
Configuration for the upstream nameservers to use for resolution
ResolverOpts
Configuration for the Resolver
Timer
Timer implementation for the dns.

Enums§

LookupIpStrategy
The lookup ip strategy
Protocol
The protocol on which a NameServer should be communicated with
ServerOrderingStrategy
The strategy for establishing the query order of name servers in a pool.

Constants§

CLOUDFLARE_IPS
IP addresses for Cloudflare’s 1.1.1.1 DNS service
GOOGLE_IPS
IP addresses for Google Public DNS
QUAD9_IPS
IP address for the Quad9 DNS service

Functions§

parse_resolv_conf
read_resolv_conf
Read the DNS configuration from a file.
read_system_conf

Type Aliases§

Dns
Agnostic aysnc DNS resolver