5次发布
0.2.2 | 2023年9月18日 |
---|---|
0.2.1 | 2023年8月28日 |
0.2.0 | 2023年8月28日 |
0.1.1 | 2023年7月31日 |
0.1.0 | 2023年7月31日 |
856 in 异步
313 每月下载量
在 mini-c-ares-resolver 中使用
145KB
3.5K SLoC
mini-c-ares
rust-c-ares的分支,为c-ares库提供异步DNS请求的最小Rust包装器。
大多数用户可能更喜欢 c-ares-resolver
,它提供了更简单的API和更多功能。
文档
- API文档在这里:here.
贡献
贡献应该发送到上游仓库 rust-c-ares!
lib.rs
:
c-ares
库的安全包装。
这个crate相当忠实地包装了 c-ares
;也就是说,它保留了一些使用底层库的复杂性。如果你只想进行DNS查询,你可能更喜欢 c-ares-resolver
crate,它为你完成了繁重的工作。
直接使用此crate需要您注意 c-ares
,因为它会告诉你它关心的哪些文件描述符,并轮询这些文件描述符的活动。这可能需要您有一个事件循环或类似的东西来与之集成。
还在这里吗?此crate的使用方法如下
-
创建一个
Channel
。 -
在
Channel
上进行查询。所有查询都接受回调,当查询完成时会调用这些回调。 -
让
c-ares
告诉你哪些文件描述符需要监听读取和/或写入事件。你可以通过提供回调函数来实现,每当感兴趣的文件描述符集合发生变化时,该回调函数将被调用,或者直接使用Channel
的get_sock()
或fds()
来查询。 -
按照
c-ares
的要求执行。也就是说,在它关心的文件描述符上监听它请求的事件。 -
当文件描述符可读或可写时,在
Channel
上调用process_fd()
或process()
来告诉c-ares
发生了什么。 -
如果你有挂起的查询且没有看到事件发生,你仍然需要在某个时候调用
process_fd()
或process()
,以便给c-ares
一个处理超时请求的机会。
如何使用此库的完整示例可以在 这里 找到。
依赖项
~650KB
~13K SLoC