v0.2.0 · stable

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 | sh

Linux · No compiler required. All platforms →

blast
$ blast check
✓ health GET /health 4ms
✓ register user POST /api/v1/auth/register 31ms
✓ login POST /api/v1/auth/login 27ms
3/3 passed
$ blast run --rps 50 --duration 30
elapsed 1s sent 50 ok 50 p99 12ms
elapsed 5s sent 250 ok 250 p99 11ms
elapsed 10s sent 500 ok 500 p99 14ms
requests 1500 success rate 100.0%
p50 8ms p95 14ms p99 18ms p999 31ms
6commands
14fake generators
4platforms
Rustcore
MITlicense

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
Read the load testing docs →

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
Learn about blast mock →

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
$ blast mock --port 4000
Loaded blast.config.json
GET /api/v1/users 200
POST /api/v1/auth/register 201
POST /api/v1/auth/login 200
GET /api/v1/users/{id} 200
DELETE /api/v1/users/{id} 204
5 routes mounted
Listening 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.

Featureblastk6wrkab
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.

done

JSON config

blast.config.json — define endpoints, bodies, headers, and fake data in one file. No scripting.

done

Fake data engine

20+ generators: emails, UUIDs, passwords, names, addresses, lorem, companies.

done

Request chaining

Extract from responses, inject into next request. Full user journeys without code.

in progress

Mock server

blast mock starts a local HTTP server from your config. Every route returns fake responses. Zero config.

planned

Scenario mode

Ordered sequences of requests. Each virtual user runs login → create → fetch.

planned

blast history

Auto-saves every run. Flags p99 regressions against the previous baseline.

planned

Multi-stage load

stages: ramp-up, hold, cooldown in config. Reproducible and version-controlled.

planned

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.