Webship 1.5.0 capacity benchmark
Webship 1.5.0 compared with leading web servers and reverse proxies.
Explore Webship 1.5.0 request capacity, WebTransport, 100 MB streaming, and Layer-4 proxy throughput on an isolated Debian host. Each result includes its test topology and p50/p95/p99 latency.
- Test platform
- Debian GNU/Linux 12 · Intel Xeon Gold 5115
- Webship measurement date
- 2026-09-21
- Accepted samples
- 5 × at least 20 seconds
- Reported unit
- RPS, ops/s, MiB/s, ms, and µs
Direct static response
Median requests per second. Higher is better.
| Server | HTTP/1.1 | HTTP/1.1 TLS | h2c | HTTP/2 TLS | HTTP/3 TLS |
|---|---|---|---|---|---|
| Topology (C/F/O) | 5/5/— | 5/5/— | 5/5/— | 5/5/— | 5/5/— |
| Webship | 514,045 RPS | 336,831 RPS | 1,662,142 RPS | 1,357,786 RPS | 450,558 RPS |
| Nginx | 234,231 RPS | 187,333 RPS | 183,810 RPS | 247,359 RPS | 225,771 RPSUnstable |
| Lighttpd | 351,555 RPS | 201,838 RPS | 931,845 RPS | 726,869 RPS | Not supported |
| Caddy | 41,633 RPS | 39,975 RPS | 28,498 RPS | 27,681 RPS | 34,306 RPS |
| HAProxy | 305,551 RPS | 182,640 RPS | 325,804 RPS | 236,337 RPS | 241,471 RPS |
| Envoy | 113,055 RPS | 96,375 RPS | 165,378 RPS | 154,936 RPS | 28,955 RPSUnstable |
| Pingora | 197,126 RPS | 144,833 RPS | 226,226 RPS | 163,314 RPS | Not supported |
Reverse proxy with TLS termination
Median requests per second. Higher is better.
| Server | HTTP/1.1 | HTTP/1.1 TLS | h2c | HTTP/2 TLS | HTTP/3 TLS |
|---|---|---|---|---|---|
| Topology (C/F/O) | 3/5/2 | 4/4/2 | 4/4/2 | 4/4/2 | 2/6/2 |
| Webship | 244,315 RPS | 129,601 RPS | 142,362 RPS | 133,460 RPS | 145,824 RPS |
| Nginx | 163,606 RPS | 110,723 RPS | 107,931 RPS | 92,896 RPS | 97,231 RPSUnstable |
| Lighttpd | 44,815 RPS | 44,074 RPS | 44,325 RPS | 43,827 RPS | Not supported |
| Caddy | 32,421 RPS | 29,695 RPS | 22,441 RPS | 21,933 RPS | 24,196 RPS |
| HAProxy | 136,514 RPS | 94,693 RPS | 127,281 RPS | 97,195 RPS | 93,577 RPS |
| Envoy | 41,183 RPS | 37,491 RPS | 42,566 RPS | 39,801 RPS | 16,386 RPSUnstable |
| Pingora | 68,687 RPS | 54,184 RPS | 58,620 RPS | 49,684 RPS | Not supported |
Reverse proxy with TLS pass-through
Median requests per second through an end-to-end TLS tunnel. Higher is better.
| Server | HTTP/1.1 TLS | HTTP/2 TLS | HTTP/3 TLS |
|---|---|---|---|
| Topology (C/F/O) | 4/4/2 | 4/4/2 | 4/4/2 |
| Webship | 226,930 RPS | 273,332 RPS | 225,625 RPS |
| Nginx | Not supported | Not supported | Not supported |
| Lighttpd | Not supported | Not supported | Not supported |
| Caddy | Not supported | Not supported | Not supported |
| HAProxy | 187,772 RPS | 259,274 RPS | Not supported |
| Envoy | 149,465 RPS | 238,003 RPS | Not supported |
| Pingora | Not supported | Not supported | Not supported |
WebTransport capacity
Median payload throughput in MiB/s, with p50/p95/p99 latency for reliable streams and datagrams. Higher throughput is better.
| Mode | Topology (C/F/O) | Reliable streams (MiB/s) | Datagrams (MiB/s) | Status |
|---|---|---|---|---|
| Direct | 5/5/— | 1,204.1 MiB/s | 1,172.5 MiB/s | Stable |
| Reverse TLS pass-through | 4/4/2 | 634.8 MiB/s | 611.7 MiB/s | Stable |
Direct 100 MB streaming
Median payload throughput for the 100 MB fixture in MiB/s. Higher is better.
| Server | HTTP/1.1 TLS | HTTP/2 TLS | HTTP/3 TLS |
|---|---|---|---|
| Topology (C/F/O) | 5/5/— | 5/5/— | 5/5/— |
| Webship | 4,357.7 MiB/s | 4,289.1 MiB/s | 2,175.7 MiB/s |
| Nginx | 3,037.7 MiB/sUnstable | 4,120.4 MiB/s | 526.9 MiB/sUnstable |
| Lighttpd | 3,672.4 MiB/sUnstable | 4,451.2 MiB/s | Not supported |
| Caddy | 3,269.3 MiB/s | 2,740.3 MiB/s | 1,443.5 MiB/s |
| HAProxy | Not supported | Not supported | Not supported |
| Envoy | Not supported | Not supported | Not supported |
| Pingora | 2,241.8 MiB/s | 3,581.9 MiB/s | Not supported |
Reverse-proxy 100 MB streaming with TLS termination
Median payload throughput for the 100 MB fixture in MiB/s. Higher is better.
| Server | HTTP/1.1 TLS | HTTP/2 TLS | HTTP/3 TLS |
|---|---|---|---|
| Topology (C/F/O) | 4/4/2 | 4/4/2 | 4/5/1 |
| Webship | 3,849.7 MiB/s | 3,498 MiB/s | 2,161.6 MiB/s |
| Nginx | 1,053.2 MiB/s | 1,434.5 MiB/s | 474.3 MiB/s |
| Lighttpd | 1,302.9 MiB/sUnstable | 1,591.7 MiB/sUnstable | Not supported |
| Caddy | 2,809.9 MiB/s | 2,077.8 MiB/s | 1,263 MiB/s |
| HAProxy | 2,659.3 MiB/s | 2,668.8 MiB/s | 1,127.6 MiB/s |
| Envoy | 2,801.3 MiB/sUnstable | 2,907.1 MiB/s | Failed strict validation |
| Pingora | 2,578.2 MiB/s | 2,249.4 MiB/s | Not supported |
Reverse-proxy 100 MB streaming with TLS pass-through
Median payload throughput for the 100 MB fixture in MiB/s. Higher is better.
| Server | HTTP/1.1 TLS | HTTP/2 TLS | HTTP/3 TLS |
|---|---|---|---|
| Topology (C/F/O) | 4/4/2 | 4/4/2 | 4/2/4 |
| Webship | 2,787.9 MiB/s | 2,182.7 MiB/s | 1,938.7 MiB/s |
| Nginx | Not supported | Not supported | Not supported |
| Lighttpd | Not supported | Not supported | Not supported |
| Caddy | Not supported | Not supported | Not supported |
| HAProxy | 2,778.4 MiB/s | 2,135 MiB/s | Not supported |
| Envoy | 2,790.8 MiB/s | 2,135 MiB/s | Not supported |
| Pingora | Not supported | Not supported | Not supported |
Layer-4 proxy capacity
Persistent TCP and UDP connections with exact echo validation. Higher throughput is better; latency is in microseconds. Saturation is client/frontend/origin CPU utilization.
C/F/O means client/frontend/origin physical cores. In the Layer-4 TLS pass-through table, p and t mean physical cores and logical SMT threads. A dash means that a direct test has no origin process.
TCP proxy
| Server | Operations/s | Throughput (MiB/s) | Topology (C/F/O) | p50 / p95 / p99 (µs) | C/F/O CPU-set saturation | C/F/O busiest task CPU |
|---|---|---|---|---|---|---|
| Webship | 250,712 ops/s | 489.7 MiB/s | 4/4/2 | 86.9%/99.5%/99.6% | 87.1%/99.5%/99.6% | |
| Envoy | 173,639 ops/s | 339.1 MiB/s | 4/4/2 | 62.3%/99.4%/82.4% | 62.3%/99.5%/82.6% | |
| HAProxy | 221,803 ops/s | 433.2 MiB/s | 4/4/2 | 79.8%/99.5%/97.3% | 80.0%/99.5%/97.3% | |
| Nginx | 242,421 ops/s | 473.5 MiB/s | 4/4/2 | 84.9%/99.3%/96.9% | 84.9%/99.4%/97.0% |
UDP proxy
| Server | Operations/s | Throughput (MiB/s) | Topology (C/F/O) | p50 / p95 / p99 (µs) | C/F/O CPU-set saturation | C/F/O busiest task CPU |
|---|---|---|---|---|---|---|
| Webship | 290,929 ops/s | 568.2 MiB/s | 4/4/2 | 84.1%/98.0%/98.1% | 84.2%/99.8%/98.1% | |
| Envoy | 175,692 ops/s | 343.1 MiB/s | 4/4/2 | 59.0%/99.9%/70.3% | 59.1%/100.0%/70.6% | |
| Nginx | 270,450 ops/s | 528.2 MiB/s | 4/4/2 | 83.6%/97.7%/95.4% | 83.8%/99.7%/95.5% |
TLS pass-through
| Server | Operations/s | Throughput (MiB/s) | Topology (C/F/O) | p50 / p95 / p99 (µs) | C/F/O CPU-set saturation | C/F/O busiest task CPU |
|---|---|---|---|---|---|---|
| Webship | 260,054 ops/s | 507.9 MiB/s | 3p/6t · 4p/8t · 3p/6t | 91.6%/49.6%/91.0% | 91.9%/99.2%/91.0% | |
| Envoy | 170,178 ops/s | 332.4 MiB/s | 3p/6t · 4p/8t · 3p/6t | 62.3%/49.6%/60.2% | 62.5%/99.2%/60.3% | |
| HAProxy | 220,556 ops/s | 430.8 MiB/s | 3p/6t · 4p/8t · 3p/6t | 81.7%/49.6%/79.6% | 81.7%/99.2%/79.6% | |
| Nginx | 248,282 ops/s | 484.9 MiB/s | 3p/6t · 4p/8t · 3p/6t | 90.3%/49.6%/88.7% | 90.4%/99.2%/88.7% |
TLS termination
| Server | Operations/s | Throughput (MiB/s) | Topology (C/F/O) | p50 / p95 / p99 (µs) | C/F/O CPU-set saturation | C/F/O busiest task CPU |
|---|---|---|---|---|---|---|
| Webship | 196,216 ops/s | 383.2 MiB/s | 4/4/2 | 78.9%/99.5%/93.8% | 79.0%/99.6%/93.8% | |
| Envoy | 147,247 ops/s | 287.6 MiB/s | 4/4/2 | 59.7%/99.5%/73.1% | 59.8%/99.6%/73.1% | |
| HAProxy | 145,396 ops/s | 284 MiB/s | 4/4/2 | 56.3%/99.6%/70.3% | 56.4%/99.7%/70.4% | |
| Nginx | 169,563 ops/s | 331.2 MiB/s | 4/4/2 | 69.9%/99.6%/85.0% | 70.0%/99.6%/85.0% |
Reproducible method
Each supported result is the median of five accepted samples. TCP and TLS workloads include warm-up; HTTP/3 includes a calibrated prime.
Server and load-generator processes ran on disjoint physical cores. Reverse-proxy runs also isolated the static origin.
Every accepted sample passed zero-error correctness gates and the published stability limits. Failed samples are never silently included.
Webship 1.5.0 was rerun with the benchmarked PGO binary. Competitor values are retained from earlier accepted runs on the same Debian host; they were not rerun for this release. Compare each cell with its displayed topology and stability status.