37个稳定版本 (10个主要版本)

10.0.0 2024年8月2日
9.0.0 2024年6月7日
8.5.1 2024年5月26日
8.3.0 2024年2月23日
0.2.0 2016年11月20日

#74 in 异步

Download history 443/week @ 2024-05-03 808/week @ 2024-05-10 386/week @ 2024-05-17 668/week @ 2024-05-24 496/week @ 2024-05-31 635/week @ 2024-06-07 483/week @ 2024-06-14 597/week @ 2024-06-21 403/week @ 2024-06-28 459/week @ 2024-07-05 425/week @ 2024-07-12 644/week @ 2024-07-19 645/week @ 2024-07-26 715/week @ 2024-08-02 657/week @ 2024-08-09 810/week @ 2024-08-16

每月下载量3,004
9 个crate中使用了(直接使用3个)

MIT 许可证

68KB
1K SLoC

c-ares-resolver

基于c-ares构建的DNS解析器,用于异步DNS请求。

此crate提供了三种解析器类型 - ResolverFutureResolverBlockingResolver

  • Resolver 是对底层 c-ares 库的最薄包装。它通过回调返回答案。其他解析器都建立在这个之上。
  • FutureResolver 将答案作为 std::future::Future 返回。
  • BlockingResolver 完全不是异步的 - 如其名所示,它会阻塞直到查找完成。

Crates.io Build Status

文档

API文档在此:这里.

设置功能 build-cmake 将导致使用 cmake 构建 c-ares 库。在Unix平台上,这比默认的 autotools 构建 快得多:因此,如果您使用它,您可能更喜欢它。

示例

extern crate c_ares_resolver;
extern crate futures_executor;
use futures_executor::block_on;

fn main() {
    let resolver = 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)
    }
}

更多示例程序可以在这里找到。

贡献

欢迎贡献。请发送pull请求!

依赖项

~5–14MB
~199K SLoC