#dns-client #dns #light-weight #net #embedded-nal-async #stack

nightly no-std itsdns

基于 embedded-nal-async 的轻量级 DNS 客户端

1 个不稳定版本

0.1.0 2023年1月30日

#29 in #dns-client

MIT/Apache

24KB
664

itsdns

CI crates.io docs.rs

始终是DNS。

这是一个轻量级(no_std 和 no_alloc)的 DNS 客户端,您可以使用任何由 embedded-nal-async 实现的 UDP 堆栈使用。它还实现了 embedded-nal-async 的 DNS 特性。

示例

#![feature(async_fn_in_trait)]
#![allow(incomplete_features)]

use embedded_nal_async::SocketAddr;
use std::str::FromStr;

use itsdns::*;

#[tokio::main]
async fn main() {
    let nameserver: SocketAddr = SocketAddr::from_str("8.8.8.8:53").unwrap();
    let stack = std_embedded_nal_async::Stack::default();
    let client = ItsDns::new(stack, nameserver);

    let host = "example.com";
    println!("Resolving {}...", host);
    let ip = client
        .get_host_by_name(host, embedded_nal_async::AddrType::IPv4)
        .await
        .unwrap();

    println!("Resolved {} to {}", host, ip);
}

依赖关系

~1MB
~16K SLoC