Fabio 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 | Fabio | River |
|---|---|---|
| Deploy effort | Under-an-hour setup | Read-the-docs project |
| Health score | 91 · Excellent | 17 · At risk |
| Category | Reverse Proxy & Gateways | Reverse Proxy & Gateways |
| License | MIT | Apache-2.0 |
| Language | Go | Rust |
| Setup difficulty | Medium | Medium |
| Min. RAM | 128 MB | 64 MB |
| Deployment | docker, binary | binary, source |
| GitHub stars | ★ 7,342 | ★ 2,353 |
| First released | 2015 | 2024 |
| Replaces | HAProxy, Nginx | nginx, HAProxy |
What are Fabio and River?
Fabio
Fabio is a fast, modern, zero-configuration load balancing HTTP and TCP router that automatically updates routes from Consul. Services register themselves with no manual configuration.
- Zero-config routing
- Consul service discovery
- HTTP and TCP load balancing
- Hot route updates
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
Fabio vs River: key differences
Fabio is written in Go, while River is built with Rust. Licensing differs — MIT for Fabio versus Apache-2.0 for River. River is the lighter option, starting around 64 MB of RAM against 128 MB for Fabio. Fabio is the more established project (first released 2015), while River arrived in 2024. Fabio has the considerably larger community, at 7,342 GitHub stars versus 2,353. Fabio lists first-class Docker deployment; River does not.
Why pick each one
Choose Fabio if…
- Released under the MIT license
- First-class Docker support for quick deployment
- Mature project with 7.3k GitHub stars
- Written in Go
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 Fabio or River better?
Neither is universally better. Fabio has the larger community; both share a medium setup difficulty, so the decision comes down to features and licensing.
Are Fabio and River free and open-source?
Yes. Fabio is licensed under MIT and River under Apache-2.0. Both can be self-hosted at no software cost.
Can I run Fabio and River with Docker?
Fabio: yes. River: check the project docs for container support.
Which is lighter on resources, Fabio or River?
River has the smaller minimum footprint at 64 MB of RAM, compared to about 128 MB for Fabio. Real-world usage depends on library size, user count, and enabled features.