6 个版本
0.1.5 | 2024 年 7 月 9 日 |
---|---|
0.1.4 | 2024 年 5 月 22 日 |
0.1.3 | 2024 年 3 月 9 日 |
0.1.2 | 2023 年 11 月 22 日 |
#1609 在 网络编程
每月 231 次下载
7KB
60 行
dns-mock-server
基于 hickory-server
的 DNS 模拟服务器实现,用于测试。
用法
以下示例展示了库的基本用法,其中我们创建一个新的服务器,添加一些记录,然后在后台任务上启动它。
use std::net::{IpAddr, Ipv4Addr, SocketAddrV4};
use dns_mock_server::Server;
use tokio::net::UdpSocket;
type Result<T> = std::result::Result<T, Box<dyn std::error::Error>>;
#[tokio::test]
async fn check_something() -> Result<()> {
let mut server = Server::default();
let records = vec![IpAddr::V4(Ipv4Addr::LOCALHOST)];
server.add_records("example.com", records)?
let addr = SocketAddrV4::new(Ipv4Addr::LOCALHOST, 0);
let socket = UdpSocket::bind(&addr).await?;
let local_addr = socket.local_addr()?;
tokio::spawn(async move {
server.start(socket).await.unwrap();
});
// Point your DNS handling at `local_addr` and make requests
Ok(())
}
依赖项
~15–25MB
~474K SLoC