Minimal but friendly safe wrapper around dns-sd(Bonjour, mDNS, Zeroconf DNS) APIs.
astro-dnssd
requires the Bonjour SDK.
avahi-compat-libdns_sd
for your distro of choice.This website provides a good overview of the DNS-SD protocol.
rust
use astro_dnssd::register::DNSServiceBuilder;
use astro_dnssd::txt::TXTRecord;
let mut txt = TXTRecord::new();
let _ = txt.insert("s", Some("open"));
let mut service = DNSServiceBuilder::new("_rust._tcp")
.with_port(2048)
.with_name("MyRustService")
.with_txt_record(txt)
.build()
.unwrap();
let _result = service.register(|reply| match reply {
Ok(reply) => println!("Successful reply: {:?}", reply),
Err(e) => println!("Error registering: {:?}", e),
});
loop {
service.process_result();
}
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.