loadgen-rs (Short): Results, Quick Start, and Tool Choice

This is the short version.
If you want profiling details, FFI internals, and full cloud deployment walkthroughs, read the full article: loadgen-rs: An HTTP Benchmark Client in Rust.

TL;DRπŸ”—

loadgen-rs is a Rust benchmark client for HTTP/1.1, HTTP/2, and HTTP/3 with:

  • one CLI for all protocols
  • JSONL/CSV output for automation
  • distributed controller/worker mode
  • scripted Deno scenarios via FFI (k6-style checks/extractors)

In short: very strong for reproducible automation and multi-node testing.
If your only goal is absolute H3 peak throughput, h2load still has an edge.

Quick StartπŸ”—

Single-nodeπŸ”—

# H2 example, 10s run
loadgen-rs -n 0 -D 10s -c 8 -t 4 -m 10 --alpn-list=h2 https://localhost:8443/

DistributedπŸ”—

# 1) start workers
bash examples/worker-start.sh

# 2) run controller
deno run --allow-ffi --allow-net --allow-read --allow-env \
  examples/distributed.ts http://worker1:9091 http://worker2:9091

Why distributed matters: you can scale beyond one machine and still get statistically correct merged percentiles (histogram merge, not naive p99 averaging).

Benchmark Snapshot vs h2loadπŸ”—

High-concurrency test (-c 512 -t 8 -m 8, 30s):

Protocolh2load RPSloadgen-rs RPSRatio
H118,85119,148101.6%
H217,83718,025101.1%
H39,0066,70274.4%

Takeaway:

  • H1/H2 throughput: effectively on par (or slightly better for loadgen-rs in this run).
  • H3 throughput: h2load remains faster.
  • Memory footprint: h2load is smaller; loadgen-rs typically used more memory in tests.

Which Tool Should You Use?πŸ”—

NeedBetter fit
Highest H3 throughput onlyh2load
One tool for H1/H2/H3 + machine-readable reportsloadgen-rs
Distributed multi-machine load generationloadgen-rs
Scripted scenarios with checks/extractors and correlationloadgen-rs
Lowest memory footprinth2load

Next StepπŸ”—

For the complete deep dive (profiling, architecture, FFI API design, Terraform/Ansible workflow), continue with the full article: loadgen-rs: An HTTP Benchmark Client in Rust.