Directories
¶
| Path | Synopsis |
|---|---|
|
bench
|
|
|
accuracy
command
Command accuracy measures how closely Stampede's reported latency percentiles match ground truth.
|
Command accuracy measures how closely Stampede's reported latency percentiles match ground truth. |
|
compare
command
Command compare runs the same open-model workload through Stampede, k6 and wrk2 against the calibrated echo server, and compares each tool's p50, p95 and p99 with the server's exact hold times.
|
Command compare runs the same open-model workload through Stampede, k6 and wrk2 against the calibrated echo server, and compares each tool's p50, p95 and p99 with the server's exact hold times. |
|
echo
Package echo is the calibrated target used by Stampede's accuracy benchmark.
|
Package echo is the calibrated target used by Stampede's accuracy benchmark. |
|
echoserver
command
Command echoserver runs the calibrated echo target used by Stampede's accuracy benchmark.
|
Command echoserver runs the calibrated echo target used by Stampede's accuracy benchmark. |
|
scale
command
Command scale measures how much load one Stampede process can generate before the generator, not the target, becomes the limit.
|
Command scale measures how much load one Stampede process can generate before the generator, not the target, becomes the limit. |
|
cmd
|
|
|
stampede
command
Command stampede is the single Stampede binary: server, worker, agent, standalone runner and terminal UI.
|
Command stampede is the single Stampede binary: server, worker, agent, standalone runner and terminal UI. |
|
examples
|
|
|
packlab
command
Command packlab runs one of the in-memory reference apps that the product packs are tested against:
|
Command packlab runs one of the in-memory reference apps that the product packs are tested against: |
|
packlab/apilab
Package apilab is APILab, a public developer API: API keys, per-key rate limits answered with 429 and Retry-After, cursor pagination, idempotent creates and webhook deliveries.
|
Package apilab is APILab, a public developer API: API keys, per-key rate limits answered with 429 and Retry-After, cursor pagination, idempotent creates and webhook deliveries. |
|
packlab/authlab
Package authlab is AuthLab, a small OAuth 2.0 and OpenID Connect token service: password, refresh-token and client-credentials grants, userinfo, introspection and revocation, with Ed25519-signed JWT access tokens.
|
Package authlab is AuthLab, a small OAuth 2.0 and OpenID Connect token service: password, refresh-token and client-credentials grants, userinfo, introspection and revocation, with Ed25519-signed JWT access tokens. |
|
packlab/banklab
Package banklab is BankLab, a retail bank's API: customers with current and savings accounts, transaction history, monthly statements, transfers and bill payments that take an Idempotency-Key, and a reconciliation check.
|
Package banklab is BankLab, a retail bank's API: customers with current and savings accounts, transaction history, monthly statements, transfers and bill payments that take an Idempotency-Key, and a reconciliation check. |
|
packlab/chatlab
Package chatlab is ChatLab, a chat service: rooms, message history over HTTP and live messages over WebSocket with fan-out to every member.
|
Package chatlab is ChatLab, a chat service: rooms, message history over HTTP and live messages over WebSocket with fan-out to every member. |
|
packlab/dblab
Package dblab is DBLab, the data tier of a shop: PostgreSQL tables for customers, products and orders, seeded into a database you give it, and an in-process Redis (miniredis) with a product cache and a popularity ranking.
|
Package dblab is DBLab, the data tier of a shop: PostgreSQL tables for customers, products and orders, seeded into a database you give it, and an in-process Redis (miniredis) with a product cache and a popularity ranking. |
|
packlab/edgelab
Package edgelab is EdgeLab, a small serverless app on a simulated function platform: a link shortener whose routes are functions (create a link, redirect, stats, a link-preview image) running on instances that start cold, stay warm while used, are reclaimed when idle, and are limited in number per function.
|
Package edgelab is EdgeLab, a small serverless app on a simulated function platform: a link shortener whose routes are functions (create a link, redirect, stats, a link-preview image) running on instances that start cold, stay warm while used, are reclaimed when idle, and are limited in number per function. |
|
packlab/examlab
Package examlab is ExamLab, an online learning and exam platform: courses, timed exams taken question by question with every answer saved as it is given, a WebSocket channel per exam for the timer, proctoring heartbeats and announcements, and assignment submissions checked for similarity.
|
Package examlab is ExamLab, an online learning and exam platform: courses, timed exams taken question by question with every answer saved as it is given, a WebSocket channel per exam for the timer, proctoring heartbeats and announcements, and assignment submissions checked for similarity. |
|
packlab/gamelab
Package gamelab is GameLab, a game backend: sign-in and a leaderboard over HTTP, matchmaking over WebSocket, and a UDP game server that players join with the ticket matchmaking gave them and send inputs to, answered on the server's tick.
|
Package gamelab is GameLab, a game backend: sign-in and a leaderboard over HTTP, matchmaking over WebSocket, and a UDP game server that players join with the ticket matchmaking gave them and send inputs to, answered on the server's tick. |
|
packlab/govlab
Package govlab is GovLab, a government services portal: exam results looked up by roll number and date of birth with downloadable PDF marksheets, notices, and an online application (sign-in by one-time code, a form in sections, document upload, submission with an acknowledgement number and a PDF receipt) with a deadline.
|
Package govlab is GovLab, a government services portal: exam results looked up by roll number and date of birth with downloadable PDF marksheets, notices, and an online application (sign-in by one-time code, a form in sections, document upload, submission with an acknowledgement number and a PDF receipt) with a deadline. |
|
packlab/iotlab
Package iotlab is IoTLab, an IoT platform: an MQTT broker that devices connect to and publish readings through, an ingest service that stores every reading and acknowledges it to its device, device shadows (a desired state set over HTTP and fetched or pushed over MQTT), and a device registry and telemetry store over HTTP.
|
Package iotlab is IoTLab, an IoT platform: an MQTT broker that devices connect to and publish readings through, an ingest service that stores every reading and acknowledges it to its device, device shadows (a desired state set over HTTP and fetched or pushed over MQTT), and a device registry and telemetry store over HTTP. |
|
packlab/labkit
Package labkit holds the small pieces every PackLab reference app shares: JSON helpers, fix flags, bearer tokens, a minimal OpenAPI document, a work counter used to show where the planted bottlenecks spend their time, and the App shape of the apps that also listen on another protocol.
|
Package labkit holds the small pieces every PackLab reference app shares: JSON helpers, fix flags, bearer tokens, a minimal OpenAPI document, a work counter used to show where the planted bottlenecks spend their time, and the App shape of the apps that also listen on another protocol. |
|
packlab/llmlab
Package llmlab is LLMLab, an OpenAI-compatible chat completions API that streams made-up tokens over server-sent events.
|
Package llmlab is LLMLab, an OpenAI-compatible chat completions API that streams made-up tokens over server-sent events. |
|
packlab/mobilelab
Package mobilelab is MobileLab, the backend of a mobile to-do and habits app, shaped like most mobile backends: remote config and feature flags fetched at launch, a minimum app version, device registration for push, delta sync of the user's items with offline changes, batched analytics events, and a GraphQL endpoint with persisted queries for the home screen.
|
Package mobilelab is MobileLab, the backend of a mobile to-do and habits app, shaped like most mobile backends: remote config and feature flags fetched at launch, a minimum app version, device registration for push, delta sync of the user's items with offline changes, batched analytics events, and a GraphQL endpoint with persisted queries for the home screen. |
|
packlab/newslab
Package newslab is NewsLab, a news site: HTML home, section and article pages, an RSS feed and a JSON API, behind a page cache of the kind a CDN or reverse proxy provides (Cache-Control, ETag, Age and X-Cache headers, conditional requests).
|
Package newslab is NewsLab, a news site: HTML home, section and article pages, an RSS feed and a JSON API, behind a page cache of the kind a CDN or reverse proxy provides (Cache-Control, ETag, Age and X-Cache headers, conditional requests). |
|
packlab/pipelinelab
Package pipelinelab is PipelineLab, an event pipeline: an in-process Kafka cluster (franz-go's kfake) with an orders topic, an enricher service that consumes it as the "enricher" consumer group, looks up each order's customer and writes the result to orders.enriched, and an admin API over HTTP that reports topics and consumer lag.
|
Package pipelinelab is PipelineLab, an event pipeline: an in-process Kafka cluster (franz-go's kfake) with an orders topic, an enricher service that consumes it as the "enricher" consumer group, looks up each order's customer and writes the result to orders.enriched, and an admin API over HTTP that reports topics and consumer lag. |
|
packlab/ridelab
Package ridelab is RideLab, an on-demand rides and food delivery service: riders see nearby cars, ask for an ETA and request a ride or order from a restaurant; a dispatcher matches each trip to a driver; the rider follows the driver live over a WebSocket until the trip is complete; drivers' apps stream their locations over a WebSocket.
|
Package ridelab is RideLab, an on-demand rides and food delivery service: riders see nearby cars, ask for an ETA and request a ride or order from a restaurant; a dispatcher matches each trip to a driver; the rider follows the driver live over a WebSocket until the trip is complete; drivers' apps stream their locations over a WebSocket. |
|
packlab/saaslab
Package saaslab is SaaSLab, a multi-tenant B2B app: sign-in, records that users create and edit, heavy reports, a REST API and a GraphQL API (with automatic persisted queries) for dashboards.
|
Package saaslab is SaaSLab, a multi-tenant B2B app: sign-in, records that users create and edit, heavy reports, a REST API and a GraphQL API (with automatic persisted queries) for dashboards. |
|
packlab/sociallab
Package sociallab is SocialLab, a social network's API: a home feed built from the accounts a user follows, posts, likes, comments, follows, and notifications delivered live over a WebSocket.
|
Package sociallab is SocialLab, a social network's API: a home feed built from the accounts a user follows, posts, likes, comments, follows, and notifications delivered live over a WebSocket. |
|
packlab/streamlab
Package streamlab is StreamLab, a video service that delivers HLS: a catalogue, playback sessions with signed tokens, multivariant and media playlists, MPEG-TS segments in four renditions for 30 on-demand videos, two live channels whose playlists slide forward every two seconds, and playback heartbeats.
|
Package streamlab is StreamLab, a video service that delivers HLS: a catalogue, playback sessions with signed tokens, multivariant and media playlists, MPEG-TS segments in four renditions for 30 on-demand videos, two live channels whose playlists slide forward every two seconds, and playback heartbeats. |
|
packlab/ticketlab
Package ticketlab is TicketLab, a ticketing service: events with seat maps, seat holds that expire, orders, and a WebSocket waiting room in front of the headline on-sale.
|
Package ticketlab is TicketLab, a ticketing service: events with seat maps, seat holds that expire, orders, and a WebSocket waiting room in front of the headline on-sale. |
|
gen
|
|
|
internal
|
|
|
agent
Package agent is stampede agent: a helper that runs inside the user's environment and injects faults into dependencies during a load test.
|
Package agent is stampede agent: a helper that runs inside the user's environment and injects faults into dependencies during a load test. |
|
ai
Package ai generates Stampede scenarios with a language model, before any load is run.
|
Package ai generates Stampede scenarios with a language model, before any load is run. |
|
ai/provider
Package provider talks to large language model APIs for Stampede's optional AI journey generation.
|
Package provider talks to large language model APIs for Stampede's optional AI journey generation. |
|
api/gen
Package gen provides primitives to interact with the openapi HTTP API.
|
Package gen provides primitives to interact with the openapi HTTP API. |
|
auth
Package auth handles passwords, session and API tokens, roles and the identity of the caller.
|
Package auth handles passwords, session and API tokens, roles and the identity of the caller. |
|
cli
Package cli wires the stampede command tree.
|
Package cli wires the stampede command tree. |
|
client
Package client is a small client for the Stampede REST API, used by the CLI and the terminal UI.
|
Package client is a small client for the Stampede REST API, used by the CLI and the terminal UI. |
|
coordinator
Package coordinator is the server side of distributed execution.
|
Package coordinator is the server side of distributed execution. |
|
crawl
Package crawl visits a web application in headless Chrome, like one visitor clicking through it, and records what it saw: the pages, their forms, and every document and API request the pages made, as a HAR recording.
|
Package crawl visits a web application in headless Chrome, like one visitor clicking through it, and records what it saw: the pages, their forms, and every document and API request the pages made, as a HAR recording. |
|
cron
Package cron parses standard five-field cron expressions and works out when they next fire, in UTC or an IANA time zone.
|
Package cron parses standard five-field cron expressions and works out when they next fire, in UTC or an IANA time zone. |
|
engine
Package engine executes a compiled scenario: it runs virtual users under a load plan, records every request and emits one metrics snapshot per interval.
|
Package engine executes a compiled scenario: it runs virtual users under a load plan, records every request and emits one metrics snapshot per interval. |
|
feed
Package feed provides the test-data sources that are more than a file: rows of generated fake data and rows read from a database query.
|
Package feed provides the test-data sources that are more than a file: rows of generated fake data and rows read from a database query. |
|
health
Package health watches the load generator itself: CPU, scheduling lag, dropped iterations, GC pauses, file descriptors, ephemeral ports and network throughput.
|
Package health watches the load generator itself: CPU, scheduling lag, dropped iterations, GC pauses, file descriptors, ephemeral ports and network throughput. |
|
keyring
Package keyring encrypts secrets at rest with AES-256-GCM envelope encryption: every value gets a fresh data key, and the data key is encrypted ("wrapped") with the server's master key.
|
Package keyring encrypts secrets at rest with AES-256-GCM envelope encryption: every value gets a fresh data key, and the data key is encrypted ("wrapped") with the server's master key. |
|
metrics
Package metrics records latencies and counters during a run and merges them losslessly across intervals and workers.
|
Package metrics records latencies and counters during a run and merges them losslessly across intervals and workers. |
|
notify
Package notify delivers run events to notification channels: a generic webhook signed with HMAC-SHA256, a Slack incoming webhook or a Discord webhook.
|
Package notify delivers run events to notification channels: a generic webhook signed with HMAC-SHA256, a Slack incoming webhook or a Discord webhook. |
|
observe
Package observe connects a run to the target's own telemetry: it queries Prometheus for the target's metrics over the run, for the report.
|
Package observe connects a run to the target's own telemetry: it queries Prometheus for the target's metrics over the run, for the report. |
|
pack
Package pack loads product packs (folders of journeys, stresses and targets for one kind of product), detects which pack fits a target, and installs a pack's files into a project.
|
Package pack loads product packs (folders of journeys, stresses and targets for one kind of product), detects which pack fits a target, and installs a pack's files into a project. |
|
pki
Package pki is the server's built-in certificate authority for workers.
|
Package pki is the server's built-in certificate authority for workers. |
|
pluginhost
Package pluginhost finds, starts and talks to protocol plugins: the executables that implement steps such as mqtt.publish.
|
Package pluginhost finds, starts and talks to protocol plugins: the executables that implement steps such as mqtt.publish. |
|
pluginhost/plugintest
Package plugintest builds Stampede's test plugin for other packages' tests.
|
Package plugintest builds Stampede's test plugin for other packages' tests. |
|
pluginhost/plugintest/echo
command
Command echo is a plugin for Stampede's own tests.
|
Command echo is a plugin for Stampede's own tests. |
|
pluginhost/plugintest/runtest
Package runtest runs a scenario file on an in-process engine, for end-to-end tests of plugins and their example scenarios.
|
Package runtest runs a scenario file on an in-process engine, for end-to-end tests of plugins and their example scenarios. |
|
protocol/grpcx
Package grpcx is Stampede's gRPC driver.
|
Package grpcx is Stampede's gRPC driver. |
|
protocol/httpx
Package httpx is Stampede's HTTP/1.1 and HTTP/2 driver.
|
Package httpx is Stampede's HTTP/1.1 and HTTP/2 driver. |
|
protocol/netem
Package netem emulates slower networks inside the load generator: added round-trip latency with jitter, per-connection bandwidth limits and the effect of packet loss, applied to each virtual user's connections.
|
Package netem emulates slower networks inside the load generator: added round-trip latency with jitter, per-connection bandwidth limits and the effect of packet loss, applied to each virtual user's connections. |
|
protocol/sse
Package sse reads server-sent event streams (text/event-stream), as defined by the HTML Living Standard.
|
Package sse reads server-sent event streams (text/event-stream), as defined by the HTML Living Standard. |
|
report
Package report turns run metrics into a verdict, per-journey and per-step statistics, a timeline and exportable documents.
|
Package report turns run metrics into a verdict, per-journey and per-step statistics, a timeline and exportable documents. |
|
report/pdf
Package pdf prints a report to PDF with headless Chrome: the same page as the HTML report, in its light theme.
|
Package pdf prints a report to PDF with headless Chrome: the same page as the HTML report, in its light theme. |
|
runner
Package runner runs a scenario in-process (no server or database) and produces a report.
|
Package runner runs a scenario in-process (no server or database) and produces a report. |
|
safety
Package safety keeps Stampede from being pointed at systems the user does not own: target classification, ownership verification, load caps and a per-request host policy.
|
Package safety keeps Stampede from being pointed at systems the user does not own: target classification, ownership verification, load caps and a per-request host policy. |
|
scenario
Package scenario defines the Stampede scenario file format: its types, parsing, validation and the templating used inside steps.
|
Package scenario defines the Stampede scenario file format: its types, parsing, validation and the templating used inside steps. |
|
script
Package script runs a scenario's JavaScript steps with goja.
|
Package script runs a scenario's JavaScript steps with goja. |
|
server
Package server is the Stampede control plane: the REST API, the run manager, live streams and the embedded web UI.
|
Package server is the Stampede control plane: the REST API, the run manager, live streams and the embedded web UI. |
|
store
Package store is Stampede's PostgreSQL (and TimescaleDB) persistence: connection pool, embedded migrations and typed queries generated by sqlc from internal/store/queries.
|
Package store is Stampede's PostgreSQL (and TimescaleDB) persistence: connection pool, embedded migrations and typed queries generated by sqlc from internal/store/queries. |
|
store/storetest
Package storetest starts a disposable TimescaleDB for tests.
|
Package storetest starts a disposable TimescaleDB for tests. |
|
telemetry
Package telemetry sets up OpenTelemetry tracing for Stampede itself.
|
Package telemetry sets up OpenTelemetry tracing for Stampede itself. |
|
tui
Package tui is Stampede's interactive terminal UI: slash commands, plain language requests turned into commands, and live run views.
|
Package tui is Stampede's interactive terminal UI: slash commands, plain language requests turned into commands, and live run views. |
|
version
Package version exposes build information stamped in at link time.
|
Package version exposes build information stamped in at link time. |
|
wire
Package wire converts between Stampede's in-memory metrics and the worker protocol messages, and holds the protocol version both sides negotiate.
|
Package wire converts between Stampede's in-memory metrics and the worker protocol messages, and holds the protocol version both sides negotiate. |
|
worker
Package worker runs the load-generating side of a distributed test.
|
Package worker runs the load-generating side of a distributed test. |
|
Package packs embeds the built-in product packs and their catalogue.
|
Package packs embeds the built-in product packs and their catalogue. |
|
pkg
|
|
|
pluginsdk
Package pluginsdk is the public API for writing Stampede protocol plugins: steps such as mqtt.publish or kafka.produce that Stampede runs next to its built-in HTTP, GraphQL, WebSocket, SSE and gRPC steps.
|
Package pluginsdk is the public API for writing Stampede protocol plugins: steps such as mqtt.publish or kafka.produce that Stampede runs next to its built-in HTTP, GraphQL, WebSocket, SSE and gRPC steps. |
|
pluginsdk/conformance
Package conformance checks a built plugin against Stampede's plugin contract.
|
Package conformance checks a built plugin against Stampede's plugin contract. |
|
Package schema embeds the JSON Schema for scenario files so programs can use it without reading it from disk (the AI generator sends it to models to shape their output).
|
Package schema embeds the JSON Schema for scenario files so programs can use it without reading it from disk (the AI generator sends it to models to shape their output). |
|
scripts
|
|
|
apidocs
command
Command apidocs writes the REST API reference (docs/reference/api.md) from the OpenAPI document, so the page cannot drift from the API:
|
Command apidocs writes the REST API reference (docs/reference/api.md) from the OpenAPI document, so the page cannot drift from the API: |
|
Package web embeds the built UI.
|
Package web embeds the built UI. |
Click to show internal directories.
Click to hide internal directories.






