PHP 8.4+MITv0.24.0-beta0 deps
The native, zero-dependency PHP framework.
One async core for Web and CLI. HTTP/2, WebSockets, an async PostgreSQL ORM, a test framework and a full CLI toolkit — built in, in pure PHP.
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.
Plaintext — Measured 2026-07-04 — 24 logical CPUs, WSL2, PHP 8.4.22, 514 connections.
Zero dependencies
The entire core is first-party: server, router, ORM, sessions, cache, tests. Your composer.json stays this small.
{
"require": {
"php": "^8.4"
}
}WebSockets
Server and client, RFC 6455, permessage-deflate, channels and broadcasting — Autobahn: 462 tests, 0 failures.
DocsAsync PostgreSQL
Native DBAL + ORM with query and schema builders, migrations, seeders, transactions and read replicas.
DocsTesting
Suites, expressive assertions, Mock/Spy/Fake doubles, coverage, snapshots and fakers.
DocsCLI toolkit
Commands, ANSI output markup and UI components: Progress, Table, Menu, Alert, Logs.
DocsSecurity
CORS, CSRF with masking, sliding-window rate limit, secure headers, JWT (HS256/RS256/JWKS), RBAC.
DocsCache & storage
File, APCu, shared-memory and Redis cache; Local, Memory and S3-compatible storage.
DocsQueues & scheduling
Background jobs with retry and dead-letter, a cron-style scheduler and zero-overhead events.
DocsObservability
Counters, gauges and histograms with JSON, Prometheus and OTLP exporters.
Docs- Router + route cache
- Sessions
- Template engine
- TCP/UDP servers & clients
- HTTP client
- ETag
- Compression
- TrustedProxy
- Logging
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.
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 +94% over Swoole on /db comes from.
Docs+94%
more throughput than Swoole on single-query DB
Single DB query
Higher is better- Bootgly166,746 req/s
- Swoole95,718 req/s
Measured 2026-07-04 — 24 logical CPUs, WSL2, PHP 8.4.22, 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. The progress bar renders ~7× faster than Laravel's; the template engine ~9× faster than Blade.
$Progress = new Progress($Output);
$Progress->total = 1000000;
$Progress->start();
// ~7× faster than Laravel / Symfony
$Progress->advance();
$Progress->finish();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
Command Line Interface
Terminal UI components: alerts, menus, progress bars, tables, interactive commands, etc.
Web Programming Interface
Web infrastructure: HTTP server, HTTP client, TCP server, TCP client — high-performance networking from the ground up.
Foundation layers
Dependencies flow one way — down. No skipping, no cycles.
Benchmarked in the open.
TechEmpower-style routes against the fastest PHP runtimes — reproducible scripts, published reports.
Plaintext
Higher is better- Bootgly1,030,930 req/s
- Swoole964,908 req/s
- Laravel + FPM6,959 req/s
JSON
Higher is better- Bootgly1,037,342 req/s
- Swoole979,082 req/s
Single DB query
Higher is better- Bootgly166,746 req/s
- Swoole95,718 req/s
Multiple queries (20)
Higher is better- Bootgly24,966 req/s
- Swoole17,263 req/s
Fortunes (DB + templating)
Higher is better- Bootgly131,263 req/s
- Swoole98,557 req/s
Updates (20 queries)
Higher is better- Bootgly5,782 req/s
- Swoole3,721 req/s
Measured 2026-07-04 — 24 logical CPUs, WSL2, PHP 8.4.22, 514 connections. Same hardware, reproducible scripts, published reports.
Technical specifications.
- PHP
- ≥ 8.4
- License
- MIT
- Version
- v0.24.0-beta
- 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
Beta — v0.24.0-beta
Bootgly is in beta — stabilizing toward 1.0. Pin a version and expect some changes; not yet recommended for production.
Roadmap
v1.0.0-beta next
Stability, API Freeze, Full Documentation
v1.0.0
Production-ready release
Start building with Bootgly.
Install it, open the project wizard and read the docs — everything is one command away.
Keep exploring the docs: