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网络编程

Download history 113/week @ 2024-05-22 3/week @ 2024-05-29 6/week @ 2024-06-05 2/week @ 2024-06-12 3/week @ 2024-06-26 104/week @ 2024-07-03 58/week @ 2024-07-10 81/week @ 2024-07-24 21/week @ 2024-07-31

每月 231 次下载

MIT/Apache

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