Use the mdns-sd crate to publish and browse services via mDNS/DNS-SD in Rust. Add the dependency to your Cargo.toml, then create a ServiceDaemon, register a service with a name, type, and port, and start the daemon to handle discovery.
[dependencies]
mdns-sd = "0.11"
use mdns_sd::{ServiceDaemon, ServiceInfo, IfKind};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let daemon = ServiceDaemon::new()?;
let service = ServiceInfo::new(
"_http._tcp.local.",
"my-web",
"",
"192.168.1.10",
8080,
None,
)?;
daemon.register(service)?;
daemon.run()?;
Ok(())
}