digs

dig many at once.

![A digs demo](docs/demo.gif)
--- _digs_ is a DNS command-line client that is able to query many DNS servers at once. ## Why? We work with DNS records a lot. Having a tool that inspects multiple records across different machines at once is a lifesaver. ## Features - Prevent invalid input before querying, such as invalid record types or configuration. - No panics, good error handling. - [much faster](docs/benchmark.md) compared to previous `digs.py`. - Fancy error messages and colorful output. - Cross-platform and single binary. ## Usage Prepare a configuration file that should look like this: ```toml [[servers]] address = "8.8.8.8" name = "Google" [[servers]] address = "9.9.9.9:54" # Custom port, default: 53 name = "Quad9" ``` The `servers` blocks can be as many as you want. Example commands: ``` digs example.net A Query a domain using the configuration in the current directory digs example.net A --config custom.toml ...using custom configuration ``` Run `digs --help` to see more available options. ## Installation ### From binaries The [release page](https://github.com/BiznetGIO/digs/releases) includes pre-compiled binaries for GNU/Linux, macOS, and Windows. ### From source Using [cargo-binstall](https://github.com/cargo-bins/cargo-binstall) ```bash cargo binstall digs ``` Using Rust's package manager [cargo](https://github.com/rust-lang/cargo): ```bash cargo install digs ``` ## Development ```bash git clone https://github.com/BiznetGIO/digs cd digs # Run unit tests and integration tests cargo test # Install cargo install --path . ``` ## Contributing To learn more read the [contributing guide](docs/dev/README.md) ## Licence digs source code is licensed under the [MIT](https://choosealicense.com/licenses/mit/).