cdns-rs 2.0.0-next.0

A native Sync/Async Rust implementation of client DNS resolver.
Documentation
use std::path::Path;

use cdns_rs::{DnsConfigSource, DnsConfigUser, DnsConfigs, QDnsRequests, QType, QuerySetup, ResolverGlobal, ResolverStdErr};



fn main()
{
    let cfg = 
        "nameserver 1.1.1.1#@853#cloudflare-dns.com \n \
        search .";

    let hosts = 
        DnsConfigs::<DnsConfigUser>::load_host(Path::new("/etc/hosts")).unwrap();

    let cfg = 
        DnsConfigs
            ::<DnsConfigUser>
            ::new_custom(
                DnsConfigSource::SourceInstance(hosts), 
                DnsConfigSource::SourceText(cfg)
            )
            .unwrap();

    let mut res0 = 
            ResolverGlobal::<ResolverStdErr>::new(&cfg, ResolverStdErr);

    let qse = QuerySetup::default().measure_time(true);

    let mut req0 = 
        QDnsRequests::resolve_fqdn(&cfg.get_resolv_l(), 1, 2, "4neko.org", qse)
            .unwrap();

    req0.add_request(3, QType::MX, "4neko.org").unwrap();

    let res = res0.query(&req0).unwrap();

    println!("{}", res);

    return;
}