caddy-l4 vs River
A side-by-side comparison of two self-hosted reverse proxy & gateways options — licensing, setup difficulty, resource needs, and what each one replaces.
| Feature | caddy-l4 | River |
|---|---|---|
| Deploy effort | Read-the-docs project | Read-the-docs project |
| Health score | 85 · Excellent | 17 · At risk |
| Category | Reverse Proxy & Gateways | Reverse Proxy & Gateways |
| License | Apache-2.0 | Apache-2.0 |
| Language | Go | Rust |
| Setup difficulty | Medium | Medium |
| Min. RAM | 64 MB | 64 MB |
| Deployment | binary, source | binary, source |
| GitHub stars | ★ 1,780 | ★ 2,353 |
| First released | 2020 | 2024 |
| Replaces | HAProxy | nginx, HAProxy |
What are caddy-l4 and River?
caddy-l4
Caddy-L4 is an experimental application-layer-aware Layer 4 proxy app for the Caddy server, enabling TCP and UDP routing alongside Caddy's HTTP features. It allows protocol multiplexing on a single port.
- TCP and UDP proxying
- Protocol multiplexing
- Caddy integration
- Connection matchers
River
River is a reverse-proxy application built on Cloudflare's Pingora engine, providing a configurable binary for HTTP proxying and load balancing. It is self-hosted and configured through files.
- Pingora-based
- Load balancing
- File-driven config
- Memory-safe Rust
caddy-l4 vs River: key differences
Caddy-l4 is written in Go, while River is built with Rust. Caddy-l4 is the more established project (first released 2020), while River arrived in 2024.
Why pick each one
Choose caddy-l4 if…
- Extends Caddy nicely
- Port multiplexing
Watch out for
- Marked experimental
- Requires Caddy knowledge
Choose River if…
- Released under the Apache-2.0 license
- Active community (2.4k GitHub stars)
- Written in Rust
- Tiny footprint — runs in 64 MB RAM
Frequently asked questions
Is caddy-l4 or River better?
Neither is universally better. River has the larger community; both share a medium setup difficulty, so the decision comes down to features and licensing.
Are caddy-l4 and River free and open-source?
Yes. caddy-l4 is licensed under Apache-2.0 and River under Apache-2.0. Both can be self-hosted at no software cost.
Can I run caddy-l4 and River with Docker?
caddy-l4: check the project docs for container support. River: check the project docs for container support.