§ 00 - LOADING STACK
◆
LangGraphLangGraph
Azure OpenAIAzure OpenAI
QdrantQdrant
Arize PhoenixArize Phoenix
LLangfuse
MMastra
Next.jsNext.js
SSupabase
LANGGRAPH ◆ AZURE ◆ QDRANT ◆ ARIZE ◆ LANGFUSE ◆ MASTRA ◆ NEXT.JS ◆ SUPABASE ◆ LANGGRAPH ◆ AZURE ◆ QDRANT ◆ ARIZE ◆ LANGFUSE ◆ MASTRA ◆ NEXT.JS ◆ SUPABASE
◆
LangGraph
Next.js
S
§ 00 - LOADING
Pulse
v0.0.2GitHub →
Open source · Rust core

Postman collections,
weaponised.

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.

$npm i -g @pulseio/cli

Node 18+ · MIT licensed · No telemetry

pulse · fva.postman_collection.json
$ pulse run fva.postman_collection.json --vus 10 --iterations 50
› ramping up 10 vus · 500 iterations queued
[vu1] 200 142ms · GET /api/customers
[vu3] 201 87ms · POST /api/loans
[vu7] 200 412ms · GET /api/reports
[vu4] 500 62ms · POST /api/score
› done · 500 req · 1.4s
RESULTS
total reqs500
err rate0.4 %
p50 · p95 · p99142 · 388 · 612 ms
What Pulse does

Newman, but it doesn't
tap out at 10 users.

01

Postman compatible

Drop the same `*.postman_collection.json` you already use. Folders, env vars, scripts, auth headers, the lot. No rewrites.

02

Real latency math

p50, p95, p99 per endpoint and overall. Sorted by worst p95 so the regression is the first thing you see, not the last.

03

Five load patterns

Constant, ramp, spike, soak, stairstep. JMeter ergonomics without the XML. One pattern flag at the CLI.

04

Scripts that actually run

`pm.test`, `pm.environment`, `pm.collectionVariables`, `pm.expect` — sandboxed in QuickJS. Your existing pre-request and test scripts just work.

05

Native UI included

Single binary launches a local web UI for visual runs, request editing, response viewing, AI summaries. No Electron, no cloud.

06

Rust under the hood

Tokio runtime, hyper client, sub-millisecond overhead per request. Node and Python bindings ship the same core.

Load patterns

Pick a traffic shape.
Watch it run.

constantSteady N users for N iterations each.
rampClimb to target over T, hold for H.
spikeInstant jump to N for H seconds.
soakN users for long duration. Find the leak.
stairstepAdd K users every E seconds. Climb.
From your script

Same core.
Three bindings.

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)

One binary. Zero excuses.

No accounts, no telemetry, no cloud. Install it, point at your collection, ship faster.

Star on GitHub →Read the docs
Pulse

© 2026 Pulse · built by Komal Vardhan Lolugu · MIT licensed

GitHub →