FrankenPHP

Infrastructure

application server

SHOW HN2022

368points
83comments
#99of 2,570 in 2022
Top 4%of 2022 by points

How HN took it

CuriousMostly questions and neutral comments

10 positive, 32 neutral or asking, 1 mixed, 6 critical, out of 49 comments about the project. Thread score +0.09.

Idea: 4 for, 2 againstPerformance: 2 for, 2 againstExecution: 1 for, 2 againstDesign: 1 for, 0 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Simpler stack than nginx plus php-fpm in containers

    From 2 comments
    • Removing php-fpm + nginx from a container sounds AMAZING to me. If I can just have one thing in a container (plus a code base), that would be a LOT simpler than: nginx, php-fpm,…
      fideloper on HN
    • With this you don't need FastCGI. FrankenPHP is simpler and less complex: just run it directly from your Caddy web server.
      mholt on HN
  • Worker mode lowers latency versus php-fpm

    From 2 comments
    • FrankenPHP will perform better than php-fpm though, in worker mode, because it doesn't need to bootstrap fully on every request. In the conference slides, Kevin showed php-fpm…
      francislavoie on HN
    • There's really not much to manage. It's not in any way a challenge, especially if you ship it as a Docker container. It's true it's probably not for everyone though; the worker…
      francislavoie on HN
  • Early Hints support

    From 2 comments
    • There's really not much to manage. It's not in any way a challenge, especially if you ship it as a Docker container. It's true it's probably not for everyone though; the worker…
      francislavoie on HN
    • Early Hints support was added to Caddy's proxy by Kevin Dunglas, the author of FrankenPHP. No fork required for Early Hints!
      mholt on HN

Objections

  • Worker mode needs apps that reset state; legacy apps may break

    From 2 comments
    • Just some experiences I've had putting large PHP frameworks into strange spaces: 1. Most PHP frameworks are designed to have all state destroyed at the end of a request. I was…
      bdg on HN
    • There's really not much to manage. It's not in any way a challenge, especially if you ship it as a Docker container. It's true it's probably not for everyone though; the worker…
      francislavoie on HN
  • Requires building a custom binary instead of standard releases

    From 2 comments
    • Hard to think this method takes off as people are reluctant to run their own binary that can't be updated with the rest of the system which in turn gives less users to report…
      mekster on HN
    • Caddy plug-ins are statically compiled into the server. Generally you need to build your own binaries if you’re using plugins. There’s an official script, xcaddy, to make that…
      mcpherrinm on HN
  • Experimental and not ready for production

    From 1 comment
    • The approach isn't the same: Roadrunner executes php-cli and connects it to its web server through GRPC; FrankenPHP uses an ad-hoc SAPI, it is more like Apache's mod_php, the Go…
      kdunglas on HN
  • Needs Docker or a C toolchain to build

    From 2 comments
    • typically I find CMake would do this, or Make, to verify dependencies. Coupled with a packaging system, like debian gives you, this is all pretty straightforward. I ran into this…
      calvinmorrison on HN
    • When do things ever "just compile"? I assume the Docker image is because this is a pre-alpha and the docker image ensures that no one needs to go through hours of…
      TheRealPomax on HN

Requests

  • Benchmarks against mod_php, php-fpm and Swoole

    From 1 comment
    • Not really sure what the pros of this is. Simple to deploy in a docker image? Didn't know that was an issue. I guess performance also takes a hit, and that worker mode is a good…
      NorwegianDude on HN
  • Laravel performance results

    From 1 comment
    • It'd be great to see how a Laravel app could run on FrankenPHP and see if there are speed gains. My current setup is a DigitalOcean Droplet with Nginx and php-fpm.
      nonoesp on HN

Questions

  • How does it differ from RoadRunner

    From 1 comment
    • What is the difference between this and Roadrunner? It seems to do the same stuff. https://github.com/roadrunner-server/roadrunner
      abrztam on HN
  • How it keeps code in memory across requests

    From 1 comment
    • So after looking at the slidedeck on the authors blog, I'm rather confused. How does FrankenPHP keep the code in memory if each request is in a separate memory space?
      timw4mail on HN
  • Whether WordPress runs on it

    From 1 comment
    • Since it's not using PSR-7, does it mean that you could even run WordPress?
      bogdanu on HN

Alternatives named

  • RoadRunner

    From 2 comments
    • What is the difference between this and Roadrunner? It seems to do the same stuff. https://github.com/roadrunner-server/roadrunner
      abrztam on HN
    • I've been watching how Go and Rust tooling has been finding its way into the JavaScript ecosystem. I've been out of the PHP realm for about 10 years but I did find RoadRunner for…
      nobleach on HN
  • Swoole

    From 1 comment
    • Not really sure what the pros of this is. Simple to deploy in a docker image? Didn't know that was an issue. I guess performance also takes a hit, and that worker mode is a good…
      NorwegianDude on HN
  • PHP-FPM with nginx or Caddy

    From 1 comment
    • I might be missing the obvious but why would you add extra complexity to your infrastrucutre setup when PHP can be run natively from within caddy, apache, nginx via fastcgi.
      tiffanyh on HN
  • LiteSpeed PHP LSAPI

    From 1 comment
    • Good. PHP-FPM needs a challenger as anyone who has tried to debug it or its pools knows. Or to tune it (so many modes, so many configuration options). Litespeed's PHP LSAPI [1]…
      pbowyer on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/33205282)