Bootgly, a PHP framework for web apps and command-line programs, just reached its first stable release. Version 1.0.0 shipped on September 20, and 1.0.4 followed on September 23. It has its own HTTP server written in PHP, so it can serve requests without Nginx or PHP-FPM.

It's a standalone framework, not a plugin for Laravel or Symfony, and it follows semantic versioning from here, with nothing documented breaking before 2.0.0.

What's Included

  • An HTTP server using Fibers and an event loop, with HTTP/1.1, HTTP/2, WebSockets and automatic TLS through ACME
  • A router with parameter constraints and route or group middleware
  • Async database drivers for PostgreSQL and MySQL/MariaDB, plus migrations and seeders
  • Terminal components, a test runner with snapshot testing, sessions, queues and caching

Routes are PHP closures:

yield $Router->route('/health', function (
    Request $Request,
    Response $Response
) {
    return $Response(body: 'OK');
}, GET);

The Benchmarks

Bootgly's own plaintext benchmark puts it at 1,084,550 requests per second against 1,003,388 for Swoole, each at its best worker count on a 24-CPU machine. With a heavier load generator, the two were level. These are project-run tests of a single endpoint, so they don't tell you how a real app would perform.

How to Get It

Bootgly requires PHP 8.4 or newer, OpenSSL, pcntl and posix. The server runs on Linux and WSL2, and the project points macOS and Windows users to Docker. The installer sets up a starter kit and a project wizard:

curl -fsSL https://bootgly.com/install | bash

Bootgly is MIT-licensed. Visit the GitHub repo to try it, and check the docs for the full manual.