PHPackages                             f3-factory/f3-overdrive - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. f3-factory/f3-overdrive

ActiveLibrary[HTTP &amp; Networking](/categories/http)

f3-factory/f3-overdrive
=======================

Next level performance for your F3 app by serving through a HTTP application server reactor

85PHP

Since Jan 27Pushed 5mo ago3 watchersCompare

[ Source](https://github.com/f3-factory/f3-overdrive)[ Packagist](https://packagist.org/packages/f3-factory/f3-overdrive)[ RSS](/packages/f3-factory-f3-overdrive/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

F3 Overdrive
------------

[](#f3-overdrive)

Level up your Fat-Free application's performance with F3-Overdrive to boot your application by a high-performance HTTP application server reactor. The application is started once and then kept in memory to serve requests with lightning speeds.

Power-Ups included:

- Swoole
- Open-Swoole
- RoadRunner

Installation
============

[](#installation)

Install F3 Overdrive via composer:

```
composer require f3-factory/f3-overdrive

```

Requirements
------------

[](#requirements)

1. It is required to enable `CONTAINER` in your app: ```
    $f3->CONTAINER = \F3\Service::instance();
    ```
2. This plugin requires the [F3 PSR7 Factory package](https://github.com/f3-factory/fatfree-psr7-factory). You need to initialize it in your app as well.
3. You need to install the extension or support binary of one of the following http application server adapters:

Swoole
------

[](#swoole)

For using F3 Overdrive with [swoole](https://wiki.swoole.com/en/#/), you need to have the `swoole` php extension installed. There are several ways to install it, based on what your setup it:

- via PECL:
    `pecl install swoole`
- or using Docker image
    `phpswoole/swoole`
- or using [Docker Php Extension Installer](https://github.com/mlocati/docker-php-extension-installer): ```
    COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/
    RUN install-php-extensions swoole

    ```

You also need to require these composer packages:

```
composer require imefisto/psr-swoole-native
composer require swoole/ide-helper

```

Open-Swoole
-----------

[](#open-swoole)

For using [OpenSwoole](https://openswoole.com/), you need the `openswoole` php extension to be installed. Install it via:

- PECL:
    `pecl install openswoole`
- or using [Docker Php Extension Installer](https://github.com/mlocati/docker-php-extension-installer): ```
    COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/
    RUN install-php-extensions openswoole

    ```

You also need to require these composer packages:

```
composer require openswoole/core:^22.1.5
composer require openswoole/ide-helper:^22.1.5

```

RoadRunner
----------

[](#roadrunner)

For using [RoadRunner](https://roadrunner.dev/), you need the roadrunner binary to be installed on your server.

Please see the [official roadrunner docs](https://docs.roadrunner.dev/docs/general/install#docker) about the installation within Docker or other ways.

Additionally, you need to install these composer packages:

```
composer require spiral/roadrunner-cli
composer require spiral/roadrunner-http

```

Usage
=====

[](#usage)

To start your application server, you need to rewire your traditional F3 app a little bit.

First you need to wrap your app configuration, that you usually have in your `index.php` by implementing the `F3\Overdrive\AppInterface`:

\*\*Before: index.php \*\*

```
require __DIR__.'/vendor/autoload.php';

$f3 = F3\Base::instance();

$f3->route('GET /', function() {
    echo 'Hallo World';
});
$f3->run();
```

Goes into: `app/App.php` or elsewhere:

```
namespace App;

use F3\Base;
use F3\Overdrive\AppInterface;

class App implements AppInterface {

    public function init(): void
    {
        $f3 = Base::instance();

        // init DI container
        $f3->CONTAINER = \F3\Service::instance();

        // init PSR7 support
        \F3\Http\MessageFactory::registerDefaults();

        $f3->route('GET /', function() {
            echo 'Hallo World';
        });
    }

    public function run(): void
    {
        Base::instance()->run();
    }
}
```

In your `index.php` you initialise your app with overdrive:

```
require __DIR__.'/vendor/autoload.php';

use F3\Http\Server\RoadRunner;

$overdrive = new F3\Overdrive(
    app: App\App::class,
    with: new RoadRunner()
);
$overdrive->run();
```

The process is the same for all included adapters:

- `F3\Http\Server\RoadRunner`
- `F3\Http\Server\OpenSwoole`
- `F3\Http\Server\Swoole`

Developer notes
===============

[](#developer-notes)

- don't use global variables
- do not write static vars or singleton classes
- don't mess around with header() or session\_\* functions yourself. Use the framework tools instead

This is super important to reduce the case of memory leaks, or unexpected behaviours.

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance49

Moderate activity, may be stable

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity12

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1177647?v=4)[Christian Knuth](/maintainers/ikkez)[@ikkez](https://github.com/ikkez)

---

Top Contributors

[![ikkez](https://avatars.githubusercontent.com/u/1177647?v=4)](https://github.com/ikkez "ikkez (5 commits)")

---

Tags

fat-free-frameworkhttp-serverphproadrunnerswoole

### Embed Badge

![Health badge](/badges/f3-factory-f3-overdrive/health.svg)

```
[![Health](https://phpackages.com/badges/f3-factory-f3-overdrive/health.svg)](https://phpackages.com/packages/f3-factory-f3-overdrive)
```

###  Alternatives

[php-http/cache-plugin

PSR-6 Cache plugin for HTTPlug

25126.1M82](/packages/php-http-cache-plugin)[illuminate/http

The Illuminate Http package.

11937.9M7.0k](/packages/illuminate-http)[rdkafka/rdkafka

A PHP extension for Kafka

2.2k24.3k1](/packages/rdkafka-rdkafka)[httpsoft/http-message

Strict and fast implementation of PSR-7 and PSR-17

87965.9k114](/packages/httpsoft-http-message)[mezzio/mezzio-router

Router subcomponent for Mezzio

265.4M92](/packages/mezzio-mezzio-router)[serpapi/google-search-results-php

Get Google, Bing, Baidu, Ebay, Yahoo, Yandex, Home depot, Naver, Apple, Duckduckgo, Youtube search results via SerpApi.com

69127.2k](/packages/serpapi-google-search-results-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
