sendit

A flexible traffic generator for HTTP, browser, DNS, and WebSocket targets. Polite by design — every request is paced, rate-limited, and resource-gated before dispatch.

Open Source MIT Licensed.

Key features

sendit runs across all four major web protocols with configurable pacing and built-in courtesy limits so it never hammers targets or the local machine.

hub

Four driver types

Send real traffic over HTTP/HTTPS, headless browser (chromedp), DNS (miekg/dns), and WebSocket — all from one config file.

schedule

Three pacing modes

human (random delay), rate_limited (token bucket), and scheduled (cron windows) — traffic that looks exactly like you want it to.

shield

Polite by design

Per-domain token buckets, decorrelated jitter backoff on errors, and CPU/RAM resource gates ensure sendit never overwhelms targets or your machine.

stop_circle

Graceful shutdown

Waits for all in-flight requests to complete on SIGINT/SIGTERM before exiting. No dropped results.

refresh

Hot reload

Send SIGHUP (or run sendit reload) to atomically swap targets, weights, and rate limits without restarting the process.

bar_chart

Prometheus metrics

Optional Prometheus scrape endpoint exposes request counts, error rates, latency histograms, and bytes read — all labelled by driver type.

network_check

Probe & Pinch

sendit probe tests HTTP/DNS endpoints in a loop like ping — no config needed. sendit pinch checks TCP/UDP port connectivity on any host:port. Both print per-check latency and a summary on Ctrl-C.