Skip to main content

net-benchmark

fast, extensible network benchmarking — dns, http, ssl, and distributed load testing from a single cli.

PyPI version Python License: MIT Tests Docker Downloads Docker Pulls Docker Image Version Docs Discussions PyPI - Wheel GitHub Stars

pip install net-benchmark
pip install net-benchmark[pdf]   # with pdf export

Also available as a container image — no local Python needed:

docker run --rm joeovo/net-benchmark:latest http benchmark --use-defaults --formats csv,excel

joeovo/net-benchmark on Docker Hub, ghcr.io/net-benchmark/net-benchmark on GHCR. Full guide: Running in Docker.

Or via Homebrew:

brew tap net-benchmark/net-benchmark
brew install net-benchmark

successor to dns-benchmark-tool — fully backward compatible. dns-benchmark command still works as an alias.


tools

dns benchmark — resolver performance, dnssec, doh/dot
net-benchmark dns benchmark --use-defaults
net-benchmark dns benchmark --use-defaults --doh
net-benchmark dns benchmark --use-defaults --dot --dnssec-validate
net-benchmark dns compare Cloudflare Google Quad9 --dnssec-validate
net-benchmark dns monitoring --use-defaults --interval 30
flag description default
--use-defaults built-in resolvers and sample domains
--resolvers name, ip, or file
--domains comma-separated or file
--iterations queries per resolver 1
--doh dns-over-https false
--doh-url comma-separated urls, one per resolver
--dot dns-over-tls false
--dnssec-validate fail if ad flag absent false
--formats csv, excel, pdf, json csv,excel,pdf

full documentation: DNS Benchmark guide

http benchmark — latency, ttfb, security headers, tls certs
net-benchmark http benchmark --use-defaults
net-benchmark http benchmark --use-defaults --iterations 5
net-benchmark http benchmark --targets "https://api.example.com" --method POST --body '{}'
net-benchmark http compare api.example.com api2.example.com --iterations 3
net-benchmark http top --use-defaults --limit 5
net-benchmark http monitoring --use-defaults --interval 30
flag description default
--use-defaults built-in target urls
--targets comma-separated urls or file
--method http verb (get, post, etc.) get
--headers "key:value,key2:value2"
--body inline request body (e.g. json)
--body-file path to body file
--auth basic:user:pass or bearer:token
--cert / --cert-key mtls client certificate
--proxy proxy url
--assert repeatable: status=200, body_contains=ok, max_latency=500, etc.
--iterations requests per target 1
--no-http2 force http/1.1 false
--no-verify-ssl skip tls verification false
--formats csv, excel, pdf, json csv,excel,pdf

full documentation: HTTP Benchmark guide

http load test — sustained traffic, thresholds, distributed workers
net-benchmark http load-test -t https://api.example.com/health --mode throughput --duration 30
net-benchmark http load-test -t https://api.example.com --mode sustained --rps 150 --duration 300
net-benchmark http load-test -t https://api.example.com --mode ramp-up --ramp-concurrency 500
net-benchmark http load-test -t https://api.example.com --threshold 'p95_latency<500' --threshold 'dropped_rate<1'
net-benchmark http load-test -t https://api.example.com --workers 4 --emit-summary node-a.json
net-benchmark http merge-load-test ./nodes/*.json -o ./merged
flag description default
--targets / -t comma-separated urls or file
--mode throughput, sustained, ramp-up throughput
--duration seconds (throughput/sustained) 10
--rps target requests/sec — required for sustained
--max-concurrency max in-flight requests (throughput) 200
--ramp-concurrency peak concurrency to ramp to 200
--max-total-rps safety ceiling on aggregate rps during ramp-up ramp-concurrency × 50
--expected-status codes treated as expected, e.g. 200-299,401
--threshold repeatable pass/fail, e.g. p95_latency<500
--workers generate load from n processes on this machine 1
--target-distribution replicate (every worker hits every target) or shard replicate
--start-at / --start-delay synchronised start across machines
--warmup requests per target before the start barrier 0
--emit-summary write this run's summaries as json, for merging
--region label for where this generator runs, e.g. hel1
--live print each interval as it completes false
--formats csv, excel, pdf, json csv,excel

since 0.5.2, load can be generated from several parallel workers — separate processes on one machine, or separate machines entirely — with a synchronised start and a statistically correct merge. merge-load-test recomputes p95_latency and p99_latency from the merged latency histogram rather than averaging per-worker percentiles; std_latency, jitter, consistency_score and the phase p95s do not survive a merge and are rejected as unknown metrics, so evaluate those per worker.

full documentation: http load testing

ssl check — TLS handshake, certificate, and policy audit
# certificate expiry, weak keys/signatures, deprecated TLS, all flagged by default
net-benchmark ssl check --targets "example.com,api.example.com"

# CI gate: fail the build on an expiring certificate
net-benchmark ssl check --targets ./targets.txt --threshold 'cert_expiry_days>30'

# mail server STARTTLS on a non-standard port
net-benchmark ssl check --targets mail.example.com:2525 --starttls smtp

Chain-of-trust and revocation reporting need Python 3.13+ (SSLObject.get_unverified_chain()); on 3.11/3.12 the leaf certificate is still fully checked. Full documentation: SSL Check guide


export formats

format flag notes
csv --formats csv raw results + summary
excel --formats excel charts, dnssec sheet, colour coding
pdf --formats pdf requires pip install net-benchmark[pdf]
json --formats json full payload including protocol stats; per-worker summaries and latency histogram on merged runs


license

mit © frankovo

Release files for net-benchmark 0.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for net-benchmark 0.6.1
File Size Uploaded
net_benchmark-0.6.1.tar.gz 5.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for net-benchmark 0.6.1
File Interpreter ABI Platform
net_benchmark-0.6.1-py3-none-any.whl Python 3 none any Details

Total release size: 11.7 MB

Release files / net_benchmark-0.6.1.tar.gz

Download URL net_benchmark-0.6.1.tar.gz
Size 5.9 MB
Tags Source
SHA-256 checksum
How to use checksums
49262befbaeedaf37eb05dd5c1fedbcfef382441f99ef889c6bfb6f5f2b065a1
BLAKE2b-256 checksum
How to use checksums
58a0ef9badc54d3b5a1f22162138cd928226b15671d6eb396608f21eb291dff9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release files / net_benchmark-0.6.1-py3-none-any.whl

Download URL net_benchmark-0.6.1-py3-none-any.whl
Size 5.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
d8e7e017268bae456d751cbdb0a21b3685b61ab8cb1bda36ede0bf58fd7257f5
BLAKE2b-256 checksum
How to use checksums
49d3a418c1065a133f984ab5397b0620681be263fecc6eb462803f6fb93f36e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.1 This release

2 release files

0.6.0

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page