38 breaking releases
|0.39.0||Feb 24, 2023|
|0.38.0||Nov 25, 2022|
|0.37.0||Oct 14, 2022|
|0.34.0||Jul 5, 2022|
|0.6.0||Mar 29, 2019|
#2140 in Network programming
102,061 downloads per month
Used in 101 crates (3 directly)
DNS name resolution
Transport] for libp2p.
This crate provides the type [
GenDnsConfig] with its instantiations
TokioDnsConfig for use with
GenDnsConfig] is an address-rewriting [
Transport] wrapper around
Transport. The composed transport behaves like the inner
transport, except that [
/dnsaddr/... components of the given
a DNS, replacing them with the resolved protocols (typically TCP/IP).
async-std feature and hence the
enabled by default. Tokio users can furthermore opt-in
features. For more information about these features, please
refer to the documentation of trust-dns-resolver.
On Unix systems, if no custom configuration is given, trust-dns-resolver
will try to parse the
/etc/resolv.conf file. This approach comes with a
few caveats to be aware of:
- This fails (panics even!) if
/etc/resolv.confdoes not exist. This is the case on all versions of Android.
- DNS configuration is only evaluated during startup. Runtime changes are thus ignored.
- DNS resolution is obviously done in process and consequently not using
any system APIs (like libc's
gethostbyname). Again this is problematic on platforms like Android, where there's a lot of complexity hidden behind the system APIs. If the implementation requires different characteristics, one should consider providing their own implementation of [
GenDnsConfig] or use platform specific APIs to extract the host's DNS configuration (if possible) and provide a custom [