◆

§ 00 - LOADINGS
Drop a Postman collection. Pulse fires it at any concurrency you want and gives you p50, p95, p99 across virtual users. CLI, native UI, Node and Python bindings.
Node 18+ · MIT licensed · No telemetry
Drop the same `*.postman_collection.json` you already use. Folders, env vars, scripts, auth headers, the lot. No rewrites.
p50, p95, p99 per endpoint and overall. Sorted by worst p95 so the regression is the first thing you see, not the last.
Constant, ramp, spike, soak, stairstep. JMeter ergonomics without the XML. One pattern flag at the CLI.
`pm.test`, `pm.environment`, `pm.collectionVariables`, `pm.expect` — sandboxed in QuickJS. Your existing pre-request and test scripts just work.
Single binary launches a local web UI for visual runs, request editing, response viewing, AI summaries. No Electron, no cloud.
Tokio runtime, hyper client, sub-millisecond overhead per request. Node and Python bindings ship the same core.
Drive Pulse from a CLI for CI runs, from Node for live dashboards, or from Python for notebook-style perf experiments. One Rust engine, three idiomatic surfaces.
# Python · for perf notebooks from pulse import Runner r = Runner.from_postman("fva.json") summary = r.run(vus=20, iterations=100) print(summary.p95_by_endpoint)
No accounts, no telemetry, no cloud. Install it, point at your collection, ship faster.