| Crates.io | gigaload |
| lib.rs | gigaload |
| version | 0.1.1 |
| created_at | 2026-01-22 20:16:16.229167+00 |
| updated_at | 2026-01-22 20:44:39.214557+00 |
| description | load testing tool for benchmarking solana RPC endpoints |
| homepage | https://github.com/Not-Sarthak/gigaload |
| repository | https://github.com/Not-Sarthak/gigaload |
| max_upload_size | |
| id | 2062538 |
| size | 2,631,582 |

A load testing tool for benchmarking Solana nodes over RPC.
For each RPC method, gigaload captures:
Compare performance across different node clients (Solana Labs vs Jito vs Firedancer), configurations, or RPC providers.
From source:
git clone https://github.com/Not-Sarthak/gigaload.git
cd gigaload
cargo build --release
Binary available at ./target/release/gigaload
From cargo:
cargo install gigaload
# Basic test - getSlot at 10, 50, 100 rps for 5 seconds each
gigaload run sol_getSlot https://api.mainnet-beta.solana.com -r 10 50 100 -d 5
# Compare two providers
gigaload run sol_getSlot helius=https://mainnet.helius-rpc.com quicknode=https://your-quicknode-url -r 50 100 -d 10
# Stress test with increasing load
gigaload run sol_getSlot https://api.mainnet-beta.solana.com --mode stress
| Mode | Description | Default Rates |
|---|---|---|
stress |
Gradually increasing load | 10, 50, 100, 200, 500, 1000 rps |
spike |
Sudden load spike | 10, 1000, 10 rps |
soak |
Sustained load over time | 100 rps for 5 minutes |
gigaload ls # List all available tests
| Test | Description |
|---|---|
sol_getSlot |
Get current slot |
sol_getBlock |
Get block by slot |
sol_getBlockHeight |
Get current block height |
sol_getBalance |
Get account balance |
sol_getAccountInfo |
Get account info |
sol_getTransaction |
Get transaction by signature |
sol_getHealth |
Get node health |
sol_getVersion |
Get node version |
sol_getClusterNodes |
Get cluster nodes |
sol_getEpochInfo |
Get epoch info |
sol_getLatestBlockhash |
Get latest blockhash |
sol_getTokenAccountBalance |
Get token account balance |
gigaload run <TEST> <NODES>... [OPTIONS]
| Option | Description |
|---|---|
-r, --rates <N>... |
Request rates in rps (e.g., -r 10 50 100) |
-d, --duration <N> |
Duration in seconds for each rate |
-o, --output <DIR> |
Output directory for results |
-q, --quiet |
Suppress verbose output |
-e, --equality |
Run differential test |
--mode <MODE> |
Test mode: stress, spike, soak |
--network <NET> |
Network: mainnet-beta, testnet, devnet |
--dry |
Dry run (don't execute) |
--deep-check |
Validate RPC responses for errors |
--save-raw-output |
Save raw RPC responses |
--equality-samples <N> |
Samples for equality test (default: 10) |
-s, --seed <N> |
Random seed for reproducibility |
# test getHealth with multiple rates
gigaload run sol_getHealth https://api.mainnet-beta.solana.com -r 10 50 100 200 -d 5
# test getBalance on devnet
gigaload run sol_getBalance https://api.devnet.solana.com --network devnet -r 20 -d 10
# dry run
gigaload run sol_getSlot https://api.mainnet-beta.solana.com --dry
# deep check with raw output
gigaload run sol_getSlot https://api.mainnet-beta.solana.com -r 10 -d 5 --deep-check --save-raw-output
gigaload print <TEST_DIR>
gigaload print <TEST_DIR_1> <TEST_DIR_2> # Multiple tests
gigaload report <TEST_DIR>
gigaload report <TEST_DIR_1> <TEST_DIR_2> # Combine multiple tests
Compare responses between nodes to validate correctness:
# compare two nodes
gigaload run sol_getSlot node1=https://api.mainnet-beta.solana.com node2=https://your-node -e
# single node validation
gigaload run sol_getSlot https://api.mainnet-beta.solana.com -e --equality-samples 20
Each test creates these files in the output directory:
test.json - test parametersresults.json - full metricssummary.txt - human-readable summaryraw_output.json - raw responses (with --save-raw-output)| Metric | Description |
|---|---|
target_rate |
Target rps |
actual_rate |
Achieved rps |
throughput |
Successful rps |
success |
Success rate (0.0 - 1.0) |
mean |
Mean latency |
p50, p90, p95, p99 |
Percentile latencies |
min, max |
Min/max latency |
git clone https://github.com/Not-Sarthak/gigaload.git
cd gigaload
cargo build
cargo test
Issues and PRs welcome.
MIT