Skip to content

Comparison with Other Proxies

FeatureDwaarCaddyNginxTraefikHAProxyEnvoy
Setup
Lines for basic proxy3314151230+
Auto HTTPSYesYesNoYesNoNo
Zero-config defaultsYesYesNoPartialNoNo
Runtime config APIYesYesReloadYesStatsxDS
Docker label discoveryYesPluginNoYesNoNo
Performance
LanguageRustGoCGoCC++
Memory (idle)~6 MB~30 MB~10 MB~50 MB~10 MB~50 MB
Memory (under load)*6 MB51 MB
HTTP/2YesYesYesYesYesYes
Connection poolingYesYesYesYesYesYes
Zero-downtime upgradeYesYesLimitedYesYesYes
Observability
Structured loggingYesYesPluginYesNoYes
Built-in analyticsYesNoNoNoNoNo
First-party (ad-block-proof)YesNoNoNoNoNo
Bot detectionYesNoNoNoNoNo
Prometheus metricsYesPluginPluginYesYesYes
Security
Rate limitingYesPluginPluginYesYesYes
Security headers (auto)YesNoNoNoNoNo
WASM pluginsYesNoNoPluginNoYes
Unique to Dwaar
First-party analyticsYes
Dwaarfile configYes
Pingora engineYes

*Under-load numbers from identical benchmark: macOS Apple Silicon, wrk 4t/1000c/10s, Rust TCP backend. Dwaar v0.1.0 --bare vs nginx 1.27 worker_processes auto. Dwaar: 67K RPS, P99 5.14ms. nginx: 63K RPS, P99 8.35ms. Full results: bench/RESULTS.md.

Choose Dwaar if you want:

  • Caddy’s simplicity with better performance
  • Built-in analytics without adding another service
  • A modern Rust proxy with WASM extensibility
  • The smallest memory footprint for a full-featured proxy

Choose Caddy if you need:

  • Maximum plugin ecosystem (hundreds of Go modules)
  • HTTP/3 support today
  • 10 years of production battle-testing

Choose Nginx if you need:

  • Maximum raw throughput and you have ops expertise
  • Lua scripting for complex logic
  • The most widely documented proxy

Choose Traefik if you need:

  • Deep Kubernetes integration (Ingress Controller)
  • Built-in service discovery across multiple orchestrators
  • Enterprise middleware ecosystem

Choose HAProxy if you need:

  • Layer 4 (TCP/UDP) load balancing
  • Maximum reliability for critical infrastructure
  • Advanced health checking and failover