https://github.com/tantalor93/dnspyre
CLI tool for a high QPS DNS benchmark
https://github.com/tantalor93/dnspyre
benchmark cli concurrency dns dns-over-https dns-over-tcp dns-over-tls dns-over-udp doh doq go plotting
Last synced: 4 months ago
JSON representation
CLI tool for a high QPS DNS benchmark
- Host: GitHub
- URL: https://github.com/tantalor93/dnspyre
- Owner: Tantalor93
- License: mit
- Created: 2021-02-11T13:26:24.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-04-22T11:29:43.000Z (10 months ago)
- Last Synced: 2024-04-22T11:55:21.838Z (10 months ago)
- Topics: benchmark, cli, concurrency, dns, dns-over-https, dns-over-tcp, dns-over-tls, dns-over-udp, doh, doq, go, plotting
- Language: Go
- Homepage: https://tantalor93.github.io/dnspyre/
- Size: 37.6 MB
- Stars: 72
- Watchers: 2
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dnspyre
[](https://github.com/tantalor93/dnspyre/releases)
[](https://github.com/Tantalor93/dnspyre/blob/master/go.mod#L3)
[](https://godoc.org/github.com/tantalor93/dnspyre/v3/pkg)
[](LICENSE)
[](https://circleci.com/gh/Tantalor93/dnspyre?branch=master)
[](https://github.com/Tantalor93/dnspyre/actions/workflows/lint.yml)
[](https://github.com/Tantalor93/dnspyre/actions/workflows/goreleaser-check.yml)
[](https://codecov.io/gh/Tantalor93/dnspyre)
[](https://goreportcard.com/report/github.com/tantalor93/dnspyre/v2)
dnspyre is a command-line DNS benchmark tool built to stress test and measure the performance of DNS servers. You can easily run benchmark from MacOS, Linux or Windows systems.
This tool is based and originally forked from [dnstrace](https://github.com/redsift/dnstrace), but was largely rewritten and enhanced with additional functionality.
This tool supports wide variety of options to customize DNS benchmark and benchmark output. For example, you can:
* benchmark DNS servers using DNS queries over UDP or TCP
* benchmark DNS servers with all kinds of query types like A, AAAA, CNAME, HTTPS, ... (`--type` option)
* benchmark DNS servers with a lot of parallel queries and connections (`--number`, `--concurrency` options)
* benchmark DNS servers for a specified duration (`--duration` option)
* benchmark DNS servers with DoT ([DNS over TLS](https://datatracker.ietf.org/doc/html/rfc7858))
* benchmark DNS servers using DoH ([DNS over HTTPS](https://datatracker.ietf.org/doc/html/rfc8484))
* benchmark DNS servers using DoQ ([DNS over QUIC](https://datatracker.ietf.org/doc/rfc9250/))
* benchmark DNS servers with uneven random load from provided high volume resources (see `--probability` option)
* plot benchmark results via CLI histogram or plot the benchmark results as boxplot, histogram, line graphs and export them via all kind of image formats like png, svg and pdf. (see `--plot` and `--plotf` options)
## Documentation
For installation guide, examples and more, see the [documentation page](https://tantalor93.github.io/dnspyre/)