# dunglas/frankenphp

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/dunglas-frankenphp).**

11,156 stars · 460 forks · Go · MIT

## Links

- GitHub: https://github.com/dunglas/frankenphp
- Homepage: https://frankenphp.dev
- awesome-repositories: https://awesome-repositories.com/repository/dunglas-frankenphp.md

## Description

FrankenPHP is a high-performance application server and runtime for PHP. It functions as a web server that executes PHP scripts and delivers web content, incorporating a binary bundler to package applications and their dependencies into standalone executable files.

The project integrates the PHP interpreter directly into the Caddy web server to provide automatic HTTPS and flexible site configuration. It features a worker mode runtime that keeps applications bootloaded in memory across requests to eliminate bootstrap overhead and increase throughput. Additionally, it serves as a communication server capable of maintaining persistent connections for real-time data streaming.

The server supports HTTP early hints for preloading critical assets and provides a development workflow with automatic code reloading via a file-system watcher. It also enables the embedding of PHP scripts within other applications and the development of compiled language extensions.

## Tags

### Web Development

- [Web Servers](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/web-infrastructure/web-servers.md) — Acts as a high-performance web server that executes PHP scripts and delivers web content. ([source](https://github.com/dunglas/frankenphp#readme))
- [In-Memory Worker Runtimes](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/in-memory-worker-runtimes.md) — Implements a worker mode that keeps applications bootloaded in memory to eliminate bootstrap overhead and increase throughput. ([source](https://github.com/dunglas/frankenphp#readme))
- [Bootloaded Runtimes](https://awesome-repositories.com/f/web-development/background-processing-workers/persistent-background-workers/bootloaded-runtimes.md) — Keeps the application bootloaded in memory across multiple requests to eliminate PHP engine bootstrap overhead.
- [Real-Time Data Streaming](https://awesome-repositories.com/f/web-development/real-time-data-streaming.md) — Provides capabilities for pushing live server-side data updates to connected clients via persistent connections. ([source](https://github.com/dunglas/frankenphp#readme))

### Part of an Awesome List

- [Application Servers](https://awesome-repositories.com/f/awesome-lists/devops/application-servers.md) — Serves as a high-performance application server that executes PHP scripts and delivers web content.
- [Scripting Languages](https://awesome-repositories.com/f/awesome-lists/devtools/scripting-languages.md) — PHP runtime embedded within a Go HTTP handler.

### Development Tools & Productivity

- [Single-Binary Distributions](https://awesome-repositories.com/f/development-tools-productivity/single-binary-distributions.md) — Bundles the PHP interpreter and application source code into a single standalone executable for distribution.
- [Hot Code Reloading](https://awesome-repositories.com/f/development-tools-productivity/hot-code-reloading.md) — Provides a development feature to update application logic immediately upon detecting source code changes. ([source](https://github.com/dunglas/frankenphp#readme))
- [Hot Reloading](https://awesome-repositories.com/f/development-tools-productivity/hot-reloading.md) — Supports a development workflow where changes are reflected in the running application without manual restarts.
- [Process Watchers](https://awesome-repositories.com/f/development-tools-productivity/process-watchers.md) — Monitors source code changes to automatically restart the server process during development.

### DevOps & Infrastructure

- [Binary Bundlers](https://awesome-repositories.com/f/devops-infrastructure/php-application-deployments/binary-bundlers.md) — Provides a tool for packaging an entire PHP application and its dependencies into a single standalone executable.
- [Web Server Integrations](https://awesome-repositories.com/f/devops-infrastructure/web-server-integrations.md) — Integrates the PHP interpreter directly into the Caddy web server to eliminate external process management.

### Programming Languages & Runtimes

- [PHP Application Servers](https://awesome-repositories.com/f/programming-languages-runtimes/php-application-servers.md) — Provides a high-performance integrated application server for executing PHP scripts and serving web pages.
- [PHP Server API Bridges](https://awesome-repositories.com/f/programming-languages-runtimes/php-server-api-bridges.md) — Implements a custom C-SAPI interface bridge for low-latency communication between the Go-based server and PHP.
- [Worker Mode Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/worker-mode-runtimes.md) — Implements a runtime environment that keeps PHP applications in memory across requests to eliminate bootstrap overhead.
- [PHP Extension Bindings](https://awesome-repositories.com/f/programming-languages-runtimes/php-extension-bindings.md) — Enables the development of high-performance PHP extensions using compiled languages. ([source](https://github.com/dunglas/frankenphp#readme))

### Software Engineering & Architecture

- [Request Optimization](https://awesome-repositories.com/f/software-engineering-architecture/request-optimization.md) — Optimizes request handling by keeping the application in memory to reduce boot time and increase throughput.
- [Event-Driven Architectures](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures.md) — Uses an asynchronous event loop to manage persistent connections and real-time data streaming.

### Networking & Communication

- [Real-time Communication Servers](https://awesome-repositories.com/f/networking-communication/real-time-communication-servers.md) — Provides a server capable of maintaining persistent connections for real-time data streaming and client synchronization.
