Crates.io | astro-dnssd |
lib.rs | astro-dnssd |
version | |
source | src |
created_at | 2020-04-27 20:01:15.068794 |
updated_at | 2025-01-27 17:54:49.954279 |
description | Simple & safe DNS-SD wrapper |
homepage | |
repository | https://github.com/AstroHQ/astro-dnssd |
max_upload_size | |
id | 234762 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
Minimal but friendly safe wrapper around dns-sd(Bonjour, mDNS, Zeroconf DNS) APIs.
astro-dnssd
requires the Bonjour SDK (as of 0.3 on windows, it's optional, see win-bonjour feature flag)
avahi-compat-libdns_sd
for your distro of choice.This website provides a good overview of the DNS-SD protocol.
use astro_dnssd::DNSServiceBuilder;
use env_logger::Env;
use std::thread::sleep;
use std::time::Duration;
fn main() {
env_logger::from_env(Env::default().default_filter_or("trace")).init();
println!("Registering service...");
let service = DNSServiceBuilder::new("_http._tcp", 8080)
.with_key_value("status".into(), "open".into())
.register();
{
match service {
Ok(service) => {
println!("Registered... waiting 20s");
sleep(Duration::from_secs(20));
println!("Dropping... {:?}", service);
}
Err(e) => {
println!("Error registering: {:?}", e);
}
}
}
log::info!("Drop should have happened");
sleep(Duration::from_secs(5));
}
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.