Load test your API. Find the limit.
One config file. Run load tests to find where your API breaks — or spin up a mock server so frontend devs can build right now.
curl -fsSL https://raw.githubusercontent.com/Walon-Foundation/blast/main/install.sh | shLinux · No compiler required. All platforms →
$ blast check✓ health GET /health 4ms✓ register user POST /api/v1/auth/register 31ms✓ login POST /api/v1/auth/login 27ms3/3 passed$ blast run --rps 50 --duration 30elapsed 1s sent 50 ok 50 p99 12mselapsed 5s sent 250 ok 250 p99 11mselapsed 10s sent 500 ok 500 p99 14msrequests 1500 success rate 100.0%p50 8ms p95 14ms p99 18ms p999 31ms
What blast does
One config. Two tools.
For engineers & QA
Find where your API breaks
Fixed-RPS load tests, stress ramps, and per-second live stats. blast tells you the exact RPS where p99 crosses 500ms or errors appear — then stops automatically.
- —JSON config — define endpoints, no scripting
- —Fake data generation for realistic traffic
- —Request chaining via JSON extraction
- —p50/p95/p99/p999 percentile reports
For frontend developers
Build UI without the backend
blast mock reads your config and starts a local HTTP server in seconds. Every endpoint returns realistic fake data so you can build and iterate without waiting for the backend to be ready.
- —One command, all your routes mounted
- —Responses with {{fake.*}} data per request
- —Same config the load tests run against
- —No stubs, no mocking libraries, no configuration
blast mock
A real server from your config.
Run blast mock and every path in your config becomes a live endpoint returning fake data. Point your frontend at localhost and ship.
$ blast mock --port 4000Loaded blast.config.jsonGET /api/v1/users 200POST /api/v1/auth/register 201POST /api/v1/auth/login 200GET /api/v1/users/{id} 200DELETE /api/v1/users/{id} 2045 routes mountedListening on http://localhost:4000
Why blast
Built for API contracts, not scripts.
Most load tools require you to write code. blast reads the config your team already wrote.
| Feature | blast | k6 | wrk | ab |
|---|---|---|---|---|
| JSON config, no scripting | ✓ | — | — | — |
| Mock server built-in | ✓ | — | — | — |
| Request chaining | ✓ | ✓ | — | — |
| Fake data generation | ✓ | ✓ | — | — |
| Zero-code setup | ✓ | — | ✓ | ✓ |
| CI exit codes | ✓ | ✓ | — | — |
| RPS ramp / stress mode | ✓ | ✓ | — | — |
| Rust performance | ✓ | — | ✓ | — |
k6 requires JS. wrk requires Lua for anything beyond GETs. ab has no auth or body support.
Roadmap
What's shipping next.
Core load testing and fake data are stable and shipped. Mock server is in active development.
JSON config
blast.config.json — define endpoints, bodies, headers, and fake data in one file. No scripting.
Fake data engine
20+ generators: emails, UUIDs, passwords, names, addresses, lorem, companies.
Request chaining
Extract from responses, inject into next request. Full user journeys without code.
Mock server
blast mock starts a local HTTP server from your config. Every route returns fake responses. Zero config.
Scenario mode
Ordered sequences of requests. Each virtual user runs login → create → fetch.
blast history
Auto-saves every run. Flags p99 regressions against the previous baseline.
Multi-stage load
stages: ramp-up, hold, cooldown in config. Reproducible and version-controlled.
Threshold assertions
--assert p99<200ms exits non-zero. Drop into CI as a performance gate.
One config. Two tools. Ship faster.
Load test your API and mock it for frontend development — both from the same config file.