Manage macOS /etc/resolver/ files for custom DNS domain resolution.
macOS reads files under /etc/resolver/<domain> to route DNS queries for specific domain suffixes to designated nameservers. This crate provides a safe, idempotent Rust API to register, unregister, and list these resolver entries — with built-in orphan cleanup for crash recovery.
If you run a local DNS server (e.g., for container runtimes, development tools, or VPN integrations) and want host applications to resolve custom domains like *.myapp.local, this crate handles the system-level plumbing.
use macos_resolver::{FileResolver, ResolverConfig};
let resolver = FileResolver::new();
resolver.register(&ResolverConfig::new("myapp.local", "127.0.0.1", 5553))?;
assert!(resolver.is_registered("myapp.local"));
resolver.unregister("myapp.local")?;See USAGE.md for the full API reference, crash recovery, file format, verification, and permissions guide.
MIT OR Apache-2.0