FrankenPHP 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.

Not the right match-up?
FeatureFrankenPHPRiver
Deploy effortUnder-an-hour setupRead-the-docs project
Health score93 · Excellent17 · At risk
CategoryReverse Proxy & GatewaysReverse Proxy & Gateways
LicenseMITApache-2.0
LanguageGoRust
Setup difficultyMediumMedium
Min. RAM256 MB64 MB
Deploymentdocker, binarybinary, source
GitHub stars★ 11,358★ 2,353
First released20222024
Replacesnginx, Apache HTTP Servernginx, HAProxy

What are FrankenPHP and River?

FrankenPHP

FrankenPHP is a modern application server for PHP, built on top of the Caddy web server, that adds features like worker mode, real-time capabilities, and automatic HTTPS. It serves PHP apps directly.

  • PHP app server on Caddy
  • Worker mode performance
  • Automatic HTTPS
  • Built-in real-time support

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

FrankenPHP vs River: key differences

FrankenPHP is written in Go, while River is built with Rust. Licensing differs — MIT for FrankenPHP versus Apache-2.0 for River. River is the lighter option, starting around 64 MB of RAM against 256 MB for FrankenPHP. FrankenPHP is the more established project (first released 2022), while River arrived in 2024. FrankenPHP has the considerably larger community, at 11,358 GitHub stars versus 2,353. FrankenPHP lists first-class Docker deployment; River does not.

Why pick each one

Choose FrankenPHP if…

  • Released under the MIT license
  • First-class Docker support for quick deployment
  • Mature project with 11.4k GitHub stars
  • Written in Go
FrankenPHP details

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
River details

Frequently asked questions

Is FrankenPHP or River better?

Neither is universally better. FrankenPHP has the larger community; both share a medium setup difficulty, so the decision comes down to features and licensing.

Are FrankenPHP and River free and open-source?

Yes. FrankenPHP is licensed under MIT and River under Apache-2.0. Both can be self-hosted at no software cost.

Can I run FrankenPHP and River with Docker?

FrankenPHP: yes. River: check the project docs for container support.

Which is lighter on resources, FrankenPHP or River?

River has the smaller minimum footprint at 64 MB of RAM, compared to about 256 MB for FrankenPHP. Real-world usage depends on library size, user count, and enabled features.

Related comparisons