2 个不稳定版本
| 0.7.0 | 2024 年 1 月 12 日 |
|---|---|
| 0.6.0 | 2023 年 10 月 14 日 |
#157 在 HTTP 客户端
6,566 每月下载量
用于 odd-box
13KB
138 行
hyper-hickory
这个 crate 提供了一个 HTTP 连接器,用于 hyper,它使用 hickory 的快速和高级 DNS 解析器,而不是 hyper 的默认线程池实现。
用法
use http_body_util::Full; // Or your preferred Body implementation
use hyper::body::Bytes;
use hyper_hickory::HickoryResolver;
use hyper_util::{client::legacy::Client, rt::TokioExecutor};
let connector = HickoryResolver::default().into_http_connector();
let client: Client<_, Full<Bytes>> = Client::builder(TokioExecutor::new()).build(connector);
解析器
有一个 HickoryResolver 解析器,可以由 AsyncResolver 构建,使用 HickoryResolver::from_async_resolver。
对于大多数您愿意使用标准 TokioRuntimeProvider 的情况,应使用 TokioHickoryResolver,并且可以更容易地构建。
连接器类型
有两种连接器
HickoryHttpConnector<C>,它是HttpConnector<HickoryResolver<C>>的包装。通过HickoryResolver::into_http_connector创建。TokioHickoryHttpConnector,它是HickoryHttpConnector<TokioConnectionProvider>的别名。
山核桃选项
该箱具有其他功能,可以在hickory-resolver中切换功能,包括dns-over-openssl、dns-over-native-tls和dns-over-rustls(与rustls-webpki或rustls-native结合)用于DNS-over-TLS、dns-over-https-rustls用于DNS-over-HTTPS,以及dnssec-openssl和dnssec-ring用于DNSSEC。
关于DNSSEC的说明
在此crate的0.5.0版本之前启用DNSSEC功能时,DNSSEC功能从未实际使用过。自那时以来已做了更改,并且可能由于hickory-resolver在未签名记录上失败而导致突然的破坏性行为。
此行为将持续到hickory中的DNSSEC得到改进。
依赖关系
~10–24MB
~379K SLoC