{"id":16776386,"url":"https://github.com/ameshkov/godnsbench","last_synced_at":"2025-06-18T20:35:27.585Z","repository":{"id":56849777,"uuid":"526295339","full_name":"ameshkov/godnsbench","owner":"ameshkov","description":"Simple DNS bench util that supports encrypted protocols.","archived":false,"fork":false,"pushed_at":"2024-12-03T11:10:16.000Z","size":11019,"stargazers_count":65,"open_issues_count":3,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T10:09:59.527Z","etag":null,"topics":["benchmark","dns","dns-over-https","dns-over-quic","dns-over-tls","dnscrypt"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ameshkov.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-18T16:45:10.000Z","updated_at":"2025-03-23T19:24:54.000Z","dependencies_parsed_at":"2024-06-21T09:54:34.207Z","dependency_job_id":"edfb93af-6c3a-4549-8a9d-a7762d7df071","html_url":"https://github.com/ameshkov/godnsbench","commit_stats":null,"previous_names":["ameshkov/dnsbench"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/ameshkov/godnsbench","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ameshkov%2Fgodnsbench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ameshkov%2Fgodnsbench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ameshkov%2Fgodnsbench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ameshkov%2Fgodnsbench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ameshkov","download_url":"https://codeload.github.com/ameshkov/godnsbench/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ameshkov%2Fgodnsbench/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260629719,"owners_count":23038974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","dns","dns-over-https","dns-over-quic","dns-over-tls","dnscrypt"],"created_at":"2024-10-13T07:09:47.674Z","updated_at":"2025-06-18T20:35:22.563Z","avatar_url":"https://github.com/ameshkov.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Go Report Card](https://goreportcard.com/badge/github.com/ameshkov/godnsbench)](https://goreportcard.com/report/ameshkov/godnsbench)\n[![Latest release](https://img.shields.io/github/release/ameshkov/godnsbench/all.svg)](https://github.com/ameshkov/godnsbench/releases)\n\n# godnsbench\n\nA very simple DNS benchmarking tool based on [dnsproxy][dnsproxy].\n\n[dnsproxy]: https://github.com/AdguardTeam/dnsproxy\n\n## How to install\n\n* Using homebrew:\n    ```shell\n    brew install ameshkov/tap/godnsbench\n    ```\n* From source:\n    ```shell\n    go install github.com/ameshkov/godnsbench@latest\n    ```\n* You can use [a Docker image][dockerimage]:\n    ```shell\n    docker run --rm ghcr.io/ameshkov/godnsbench --help\n    ```\n* You can get a binary from the [releases page][releases].\n\n[dockerimage]: https://github.com/ameshkov/godnsbench/pkgs/container/godnsbench\n\n[releases]: https://github.com/ameshkov/godnsbench/releases\n\n## Usage\n\n```shell\nUsage:\n  godnsbench [OPTIONS]\n\nApplication Options:\n  -a, --address=    Address of the DNS server you're trying to test. Note, that for encrypted DNS it should include the protocol (tls://,\n                    https://, quic://, h3://)\n  -p, --parallel=   The number of connections you would like to open simultaneously (default: 1)\n  -q, --query=      The host name you would like to resolve. {random} will be replaced with a random string (default: example.org)\n  -f, --file=       The path to the file with domain names to query\n  -t, --timeout=    Query timeout in seconds (default: 10)\n  -r, --rate-limit= Rate limit (per second) (default: 0)\n  -c, --count=      The overall number of queries we should send (default: 10000)\n      --insecure    Do not validate the server certificate\n  -v, --verbose     Verbose output (optional)\n  -o, --output=     Path to the log file. If not set, write to stdout.\n\nHelp Options:\n  -h, --help        Show this help message\n```\n\n## Examples\n\n10 connections, 1000 queries to Google DNS using DNS-over-TLS:\n\n```shell\ngodnsbench -a tls://dns.google -p 10 -c 1000\n```\n\n10 connections, 1000 queries to Google DNS using DNS-over-HTTPS with rate limit\nnot higher than 10 queries per second:\n\n```shell\ngodnsbench -a https://dns.google/dns-query -p 10 -c 1000 -r 10\n```\n\n10 connections, 1000 queries for `example.net` to Google DNS using DNS-over-TLS:\n\n```shell\ngodnsbench -a https://dns.google/dns-query -p 10 -c 1000 -q example.net\n```\n\n10 connections, 1000 queries for `example.net` with timeout 1 second to\nAdGuard DNS using DNS-over-QUIC:\n\n```shell\ngodnsbench -a quic://dns.adguard.com -p 10 -c 1000 -t 1 -q example.net\n```\n\n10 connections, 1000 queries for random subdomains of `example.net` with\ntimeout 1 second to Google DNS using DNS-over-TLS:\n\n```shell\ngodnsbench -a tls://dns.google -p 10 -c 1000 -t 1 -q {random}.example.net\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fameshkov%2Fgodnsbench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fameshkov%2Fgodnsbench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fameshkov%2Fgodnsbench/lists"}