4个版本
0.2.2 | 2023年10月10日 |
---|---|
0.2.1 | 2023年9月18日 |
0.2.0 | 2023年8月28日 |
0.1.0 | 2023年7月31日 |
#492 in 异步
每月下载量 357
58KB
978 行
mini-c-ares-resolver
是c-ares-resolver的分支,使用mini-c-ares代替c-ares,用于异步DNS请求。
此crate提供三种解析器类型 - Resolver
、FutureResolver
和BlockingResolver
Resolver
是底层c-ares
库的最薄包装。它通过回调返回答案。其他解析器都是基于这个构建的。FutureResolver
将答案作为std::future::Future
返回。BlockingResolver
根本不是异步的 - 正如其名所示,它将阻塞直到查找完成。
文档
API文档在这里:https://docs.rs/mini-c-ares-resolver.
贡献
贡献应发送至c-ares-resolver.
lib.rs
:
基于c-ares
构建的DNS解析器,用于异步DNS请求。
此crate提供三种解析器类型 - Resolver
、FutureResolver
和BlockingResolver
-
Resolver
是底层c-ares
库的最薄包装。它通过回调返回答案。其他解析器都是基于这个构建的。 -
FutureResolver
将答案作为std::future::Future
返回。 -
BlockingResolver
根本不是异步的 - 正如其名所示,它将阻塞直到查找完成。
在所有解析器上
-
如
query_xxx
等方法对应于c-ares
函数ares_query
,该函数“启动一个单问题DNS查询”。 -
如
search_xxx
等方法对应于c-ares
函数ares_search
,该函数“启动一系列单问题DNS查询...使用通道的搜索域名以及HOSTALIAS环境变量给出的主机别名文件”。
有关详细信息,请参阅c-ares
文档。
示例
use futures_executor::block_on;
fn main() {
let resolver = mini_c_ares_resolver::FutureResolver::new().unwrap();
let query = resolver.query_a("google.com");
let response = block_on(query);
match response {
Ok(result) => println!("{}", result),
Err(e) => println!("Lookup failed with error '{}'", e)
}
}
更多展示如何使用该库的示例可以在这里找到。
依赖项
~3–12MB
~132K SLoC