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;