v1.0.2 MITPHP 8.4+

One server. One framework. A million requests per second.

Bootgly is the native, zero-dependency PHP framework with one async core for Web and CLI. No Nginx, no PHP-FPM, no C extensions — and no third-party packages for your security team to audit.

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

Making PHP fast is a tax.

You pay it in servers, in audits, and in onboarding time.

Infrastructure sprawl

The classic stack puts Nginx in front, PHP-FPM behind it and supervisors around it. The modern one — Swoole, FrankenPHP, event-loop frameworks — trades that for C extensions, custom binaries and new APIs to learn. Either way, every piece is one more config to tune, one more thing to monitor — and one more bill.

Dependency roulette

A typical application pulls in hundreds of vendor packages. Every one of them is supply-chain surface your team ships to production — and has to audit, patch and upgrade.

A dozen ways to do everything

Competing servers, config schemas and test stacks mean every project is a new set of decisions. Teams slow down arguing about plumbing instead of shipping.

Why Bootgly exists

Everything in the box.

"Batteries included" is not a metaphor here — the core ships every layer of a modern backend, with zero third-party packages.

HTTP Server

Event-loop server in pure PHP: HTTP/1.1 and native HTTP/2 (HPACK, multiplexing, ALPN), TLS, Fibers for non-blocking I/O. No Nginx, no FPM.

Bootgly1,084,550 req/s
Swoole1,003,388 req/s

Plaintext @ 16 workers — Measured 2026-07-25 — 24 logical CPUs, WSL2, PHP 8.4, 514 connections.

Docs

Zero dependencies

The entire core is first-party: server, router, ORM, sessions, cache, tests. Your composer.json stays this small.

{
  "require": {
    "php": "^8.4",
    "ext-openssl": "*"
  }
}
Docs

WebSockets

Server and client, RFC 6455, permessage-deflate, channels and broadcasting — Autobahn: 462 tests, 0 failures.

Docs

Async PostgreSQL

Native DBAL + ORM with query and schema builders, migrations, seeders, transactions and read replicas.

Docs

Testing

Suites, expressive assertions, Mock/Spy/Fake doubles, coverage, snapshots and fakers.

Docs

CLI toolkit

Commands, ANSI output markup and 33 terminal UI/UX components — all in the core, no plugins.

Docs

Security

CORS, CSRF with masking, sliding-window rate limit, secure headers, JWT (HS256/RS256/JWKS), RBAC.

Docs

Cache & storage

File, APCu, shared-memory and Redis cache; Local, Memory and S3-compatible storage.

Docs

Queues & scheduling

Background jobs with retry and dead-letter, a cron-style scheduler and zero-overhead events.

Docs

Observability

Counters, gauges and histograms with JSON, Prometheus and OTLP exporters.

Docs
First in pure PHP

Auto-TLS

Native ACME (Let's Encrypt): the server obtains its certificate, hot-swaps it into live workers and renews it by itself — automatic HTTPS like Caddy, in pure PHP. No certbot, no cron.

Docs
And also:
  • Router + route cache
  • Sessions
  • Template engine
  • TCP/UDP servers & clients
  • HTTP client
  • ETag
  • Compression
  • TrustedProxy
  • Logging

One framework. Zero moving parts.

Everything a modern backend needs, built into one coherent core.

Do more with less infra

A native event-loop HTTP server in pure PHP — Fibers for non-blocking I/O, HTTP/2, WebSockets, TCP and UDP. A drop-in alternative to Swoole and FrankenPHP with nothing extra to install.

  • HTTP/1.1 + HTTP/2
  • WebSocket
  • Fiber pool
Compare runtimes

Own your supply chain

Zero third-party packages in the core. The server, router, ORM, sessions, cache and test framework are first-party code — a smaller vendor/ and a smaller attack surface.

  • 0 runtime deps
  • DBAL + ORM
  • built-in tests
What is Bootgly

One way to do things

One HTTP server, one config schema, one test framework. Predictable code means faster onboarding, faster reviews and no bikeshedding.

  • 1 server
  • 1 config schema
  • 1 test framework
Browse the manual

Architecture that holds

Six layers with one-way dependencies and no cross-layer skipping — I2P (Interface-to-Platform) keeps the codebase enforceably clean as it grows.

ABIACIADIAPI CLI WPI

Dependencies flow one way — down. No skipping, no cycles.

Read the architecture

I2P — six layers, one direction.

The first PHP framework with Interface-to-Platform architecture: each top-level interface creates a platform.

Top-level interfaces — each one creates a platform

CLI→ Console platform

Command Line Interface

Terminal UI components: alerts, menus, progress bars, tables, interactive commands, etc.

WPI→ Web platform

Web Programming Interface

Web infrastructure: HTTP server, HTTP client, TCP server, TCP client — high-performance networking from the ground up.

Foundation layers

API Application Programming InterfaceApplication orchestration: components, endpoints, environments, projects, and server management. Forks into CLI and WPI.
ADI Abstract Data InterfaceData layer abstractions: database connections, table operations, and ORM foundations.
ACI Abstract Common InterfaceShared utilities for observability: benchmarking, event system, logging, and the built-in test framework.
ABI Abstract Bootable InterfaceCore bootstrap infrastructure: configs, data handling, IO, resources, and the template engine. The foundation everything else builds upon.

Dependencies flow one way — down. No skipping, no cycles.

Docs

Under the hood.

Three examples of what "native" means in practice.

A real HTTP server, not a wrapper

Routes are generator closures on a long-running event loop. Fibers keep I/O non-blocking; workers scale across cores. This is the whole hello world.

router/routes/Core.php
return static function (Request $Request, Response $Response, Router $Router): Generator
{
   yield $Router->route('/', function (Request $Request, Response $Response) {
      return $Response(body: 'Hello World!');
   }, GET);

   // Catch-all 404
   yield $Router->route('/*', fn (Request $Request, Response $Response) =>
      $Response(code: 404, body: 'Not Found')
   );
};

An async data layer

The PostgreSQL driver speaks the wire protocol natively and pools connections per worker — queries suspend Fibers instead of blocking workers. That is where the +74% over Swoole on /db comes from.

Docs

+74%

more throughput than Swoole on single-query DB — peak vs peak (2026-07-04)

Single DB query

Higher is better
  • Bootgly @ 22 workers166,746 req/s
  • Swoole @ 24 workers95,718 req/s

Measured 2026-07-04 — 24 logical CPUs, WSL2, PHP 8.4, 514 connections.

Tooling you don't have to choose

The test framework, template engine and CLI components are part of the core — one style, one runner, no plugins.

Progress-01.demo.php
$Progress = new Progress($Output);
$Progress->total = 1000000;

$Progress->start();
// ~7× faster than Laravel / Symfony
$Progress->advance();
$Progress->finish();

Numbers, not adjectives.

Every figure below comes from published, reproducible benchmark runs.

Same hardware, dated runs, reproducible scripts — read the methodology before you quote us.

Plaintext

Higher is better
  • Bootgly @ 16 workers1,084,550 req/s
  • Swoole @ 17 workers1,003,388 req/s
  • Laravel + FPM @ 23 workers6,959 req/s

JSON

Higher is better
  • Bootgly @ 18 workers1,037,342 req/s
  • Swoole @ 19 workers979,082 req/s

Single DB query

Higher is better
  • Bootgly @ 22 workers166,746 req/s
  • Swoole @ 24 workers95,718 req/s

Multiple queries (20)

Higher is better
  • Bootgly @ 22 workers24,966 req/s
  • Swoole @ 24 workers17,263 req/s

Fortunes (DB + templating)

Higher is better
  • Bootgly @ 24 workers131,263 req/s
  • Swoole @ 24 workers98,557 req/s

Updates (20 queries)

Higher is better
  • Bootgly @ 24 workers5,782 req/s
  • Swoole @ 24 workers3,721 req/s

Cached queries (20)

Higher is better
  • Bootgly @ 18 workers572,512 req/s
  • Swoole @ 18 workers554,313 req/s

Measured 2026-07-04 – 2026-07-22 – 2026-07-25 — 24 logical CPUs, WSL2, PHP 8.4, 514 connections. Same hardware, reproducible scripts, published reports.

Benchmark repository Full comparison (6 PHP runtimes)

Technical specifications.

PHP
≥ 8.4
License
MIT
Version
v1.0.2
Runtime dependencies
0
Protocols
HTTP/1.1 · HTTP/2 · TLS/ALPN · WebSocket · TCP · UDP
Database
PostgreSQL (async)
Platform
Linux-native (Windows via Docker)
Docs
llms.txt · MCP · AI assistant

Your first project in one command.

The installer opens the project wizard — from an empty directory to a running project.

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

The docs are AI-ready: llms.txt, an MCP server and a built-in assistant.

Keep exploring the docs: