MCPcopy Index your code
hub / github.com/Tantalor93/dnspyre

github.com/Tantalor93/dnspyre @v3.11.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.11.1 ↗ · + Follow
174 symbols 654 edges 32 files 25 documented · 14%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

dnspyre

Release Go version License: MIT Tantalor93 lint goreleaser-check codecov Go Report Card

dnspyre logo

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, 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) * benchmark DNS servers using DoH (DNS over HTTPS) * benchmark DNS servers using DoQ (DNS over QUIC) * 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)

demo

Documentation

For installation guide, examples and more, see the documentation page

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Run
called by 54
pkg/dnsbench/benchmark.go
roundDuration
called by 23
pkg/reporter/durationutils.go
PrintReport
called by 10
pkg/reporter/report.go
fileName
called by 6
pkg/reporter/report.go
plotLine
called by 4
pkg/reporter/plot.go
isHTTPUrl
called by 3
pkg/dnsbench/benchmark.go
Merge
called by 3
pkg/reporter/merge.go
init
called by 2
pkg/dnsbench/benchmark.go

Shape

Function 87
Method 60
Struct 24
FuncType 2
Interface 1

Languages

Go100%

Modules by API surface

pkg/dnsbench/benchmark_plaindns_api_test.go29 symbols
pkg/dnsbench/benchmark.go22 symbols
pkg/dnsbench/benchmark_doq_api_test.go13 symbols
pkg/reporter/report_test.go12 symbols
pkg/dnsbench/benchmark_doh_api_test.go11 symbols
pkg/reporter/plot.go10 symbols
pkg/reporter/report.go9 symbols
pkg/reporter/plot_test.go8 symbols
pkg/dnsbench/query_factory.go7 symbols
pkg/dnsbench/result.go6 symbols
pkg/dnsbench/benchmark_common_api_test.go6 symbols
pkg/reporter/stdreporter.go5 symbols

For agents

$ claude mcp add dnspyre \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page