Skip to content

Benchmark and Resource Usage

TL;DR

  • Benchmarked with wrk (HTTP/1.1) and h2load (HTTP/2)
  • Benchmark server is written in Go returns 4096 random bytes body
  • GoDoxy performs comparably to Traefik, with similar throughput
  • Benchmarked on basic route bench.6uo.me -> bench:80 without access logging and any other middleware
  • Real world performance may vary depending on the use case and configuration

Benchmark

Source code:

Run the benchmark with:

make benchmark or make TARGET={godoxy|traefik|nginx|caddy} benchmark

Results (Last updated: 2026-01-03 12:53 +0800):

ProxyHTTP/1.1 Req/secHTTP/2 Req/secHTTP/1.1 Latency (avg)HTTP/2 Latency (avg)Transfer/sec (HTTP/1.1)
Nginx103,906.5491,673.001.17ms1.02ms424.62MB
Traefik68,597.9956,198.301.74ms1.71ms276.99MB
GoDoxy77,491.5059,985.001.58ms1.60ms312.90MB
Caddy10,541.641,431.1082.72ms68.17ms42.73MB
  • Nginx leads with the highest throughput on both HTTP/1.1 (~104k req/s) and HTTP/2 (~92k req/s)
  • GoDoxy performs comparably to Traefik, with higher throughput in both HTTP/1.1 (~77k req/s) and HTTP/2 (~60k req/s).
  • Traefik maintains solid performance (~69k req/s HTTP/1.1, ~56k req/s HTTP/2)
  • Caddy significantly underperforms, likely a bug (also had errors in HTTP/2 test: 1597 failed requests)

Resource Usage

NOTE

For memory constrained environments, you can use the frontend with latest-lite tag. See Lite Image for more details.

Resource Usage

With Lite Image:

Lite Image

Released under the MIT License.