hyper_system_resolver/
lib.rs

1//! System DNS resolver for `hyper` & [`hyper-util`].
2//!
3//! Resolves the name via `getaddrinfo`, but more flexible
4//! than [`hyper-util`]'s standard resolver.
5//!
6//! ## Usage
7//!
8//!    ```
9//!    # #[cfg(feature = "addr-info-hints")] {
10//!    use hyper_system_resolver::{addr_info_hints, AddrInfoHints};
11//!    use hyper_util::client::legacy::{Client, connect::HttpConnector};
12//!
13//!    let addr_info_hints = AddrInfoHints {
14//!         address_family: addr_info_hints::AddressFamily::Inet6,
15//!    };
16//!    let system_resolve = hyper_system_resolver::system::System {
17//!        addr_info_hints: Some(addr_info_hints.into()),
18//!        service: None,
19//!    };
20//!    let executor = hyper_util::rt::TokioExecutor::new();
21//!    let http_connector = HttpConnector::new_with_resolver(system_resolve.resolver());
22//!    let client = Client::builder(executor).build::<_, hyper::body::Incoming>(http_connector);
23//!    # }
24//!    ```
25
26#![warn(missing_docs, clippy::all)]
27
28#[macro_use]
29extern crate tracing;
30
31#[cfg(feature = "addr-info-hints")]
32pub mod addr_info_hints;
33pub mod background;
34pub mod system;
35
36#[cfg(feature = "addr-info-hints")]
37pub use addr_info_hints::AddrInfoHints;