Stroppy is a benchmarking and testing tool for database systems. It provides a flexible framework for running performance tests and generating reports.
- Run database benchmarks with configurable workloads
- Support for multiple database backends
- Generate detailed performance reports
- Validate benchmark configurations
- Example benchmarks for quick start
- Download the latest release from the GitHub Releases page
- Extract the archive
- Make the binary executable:
chmod +x stroppy
- Move the binary to a directory in your PATH (optional)
- Go 1.24.3 or later
- Protocol Buffers compiler (e.g. protoc, for generating schemes)
- Node.js and npm (for TypeScript SDK generation)
- Make (for building the project)
-
Clone the repository:
git clone https://github.com/picodata/stroppy.git cd stroppy
-
Install dependencies:
make .bin_deps go mod tidy
-
Build the project:
make build
run
: Execute benchmark testsvalidate
: Validate benchmark configurationexample
: Run example benchmarksgenerate-dev
: Generate development files
To generate examples configuration with default values:
stroppy example --output=<output-dir>
To generate development files (k6.ts,stroppy.ts sdk, etc):
stroppy generate-dev --run-config<config-file>
Note: This command generate example with Postgres driver and K6 constant-arrival-rate workload
To run a benchmark, use the following command:
stroppy run --run-config<config-file>
Before running benchmarks, you can validate your configuration:
stroppy validate --run-config<config-file>
If you want to customize you running environment please read the customization
make help
Note: Other useful commands to work with protobuf cant be found in the Makefile
make build
Note: This command build k6 and postgres driver binaries and put it together in embed stroppy and build stroppy binary if you wish to use custom k6 or postgres driver please read the docs about customizing
make test
make lint
This project is licensed under the terms of the LICENSE file.
See the AUTHORS file for a list of contributors.
Contributions are welcome! Please read our contributing guidelines before submitting pull requests.