Bootgly
The Bootgly PHP Framework.
Bootgly
The native, zero-dependency PHP framework.
One async core for Web 🌐 and CLI 📟 — built for performance and clarity.
Bootgly is a base framework for building APIs and apps on both the Web (WPI) and Console (CLI) platforms — powered by a native, event-loop HTTP server written in pure PHP. It is the first PHP framework built on the I2P (Interface-to-Platform) architecture.
#Why Bootgly?
- ⚡ Native async HTTP server in pure PHP — long-running and event-loop driven, with Fibers for non-blocking I/O. No Nginx, no PHP-FPM in front. A pure-PHP alternative to Swoole, Workerman and FrankenPHP — no C extension required. AutoTLS with ACME v2.
- 📦 Zero third-party dependencies in the core — every essential feature (HTTP server, router, config, testing, sessions, DBAL + ORM) is built in. A smaller
vendor/and a smaller supply-chain surface. - 🎯 One canonical way to do everything — one HTTP server, one config schema, one test framework. Predictable, consistent code: fewer decisions, less to maintain, no bikeshedding.
- 🧱 Strict, enforceable architecture — six layers (ABI → ACI → ADI → API → CLI → WPI) with one-way dependencies and no cross-layer skipping. One core, two platforms.
#⚡ Quickstart
Install Bootgly and create your first project with one command — the installer opens the project wizard:
curl -fsSL https://bootgly.com/install | bash
⚡ Over 1,000,000 req/s — in pure PHP. On the TechEmpower
/plaintextroute, the HTTP Server CLI peaks at 1,076,709 req/s — ahead of Swoole (964,908) and roughly 150× a Laravel + PHP-FPM stack — with no C extension and no third-party runtime in its core. It leads Swoole on/plaintext,/json,/query(+126%) and/updates(+60%), and beats every other PHP framework benchmarked on every route.Measured on 24 logical CPUs, PHP 8.4.22, 514 connections, 10 s per route, symmetric DB pool. → Full comparison & reproducible runs: Bootgly vs Swoole, Hyperf, ReactPHP, AMPHP & Laravel
[!NOTE] Stable — the
1.xline. Bootgly follows Semantic Versioning: minor releases add capabilities, patch releases repair, and nothing documented breaks before2.0.0. Fixes land on the latest1.xminor — read the Versioning and Support policy sections below, or the full Versioning guide. The documentation covers every layer.
#Table of Contents
#🟢 Boot Requirements
#🤝 Compatibility
| Operating system | Servers (WPI) | CLI tooling |
|---|---|---|
| ✅ Linux | ✅ | ✅ |
| ✅ WSL2 | ✅ | ✅ |
| ❔ macOS | ❌ | ✅ |
| ❔ Windows | ❌ | ✅ |
Linux is first-class: the servers rely on pcntl/posix, so on macOS and Windows only the
CLI tooling runs natively — use Docker for everything else.
#⚙️ Dependencies
- PHP 8.4+ ⚠️
- Opcache + JIT enabled (+50% performance) 👍
🐳 Docker:
docker run -it bootgly/bootgly.kitgives you the whole kit — framework, Console and Web — ready to create and run projects.latestand the1/1.xaliases follow the stable line; pin an exact version (bootgly/bootgly.kit:<version>) for a build that never moves. This repository publishesbootgly/bootgly, the framework image you build your own on — it is always pulled by an explicit tag (<version>,1.x,1; neverlatest); see theDockerfileand the Docker guide.
#PHP Packages
php-cli⚠️php-openssl⚠️php-readline⚠️php-mbstring👍
--
⚠️ = Required
👍 = Recommended
#🌱 Community
Join us and help the community.
Love Bootgly? Give our repo a star ⭐!
#💻 Contributing
Read the contributing guidelines first: they cover the layer rules, the naming and commenting conventions, the native test runner and PHPStan gates a change must pass, and the Conventional Commits format every commit uses. Bug reports and feature requests have issue templates; security issues go through the security policy.
#🛂 Code of Conduct
Help us keep Bootgly open and inclusive. Please read and follow our Code of Conduct.
#🔗 Social networks
- Bootgly on LinkedIn: [Company Page]
- Bootgly on Telegram: [Telegram Group]
- Bootgly on Reddit: [Reddit Community]
- Bootgly on Discord: [Discord Channel]
- Bootgly on X (formerly Twitter): [X (Twitter)]
- Bootgly on Youtube: [YouTube Channel]
#💖 Sponsorship
A lot of time and energy is devoted to Bootgly projects. To accelerate your growth, if you like this project or depend on it for your stack to work, consider sponsoring it.
Your sponsorship will keep this project always up to date with new features and improvements / bug fixes.
#🚀 Getting started
#📦 Install (one command)
The canonical way to start: the installer clones the bootgly.kit starter template, initializes the Bootgly platform and opens the project wizard:
curl -fsSL https://bootgly.com/install | bash
Create more projects anytime — from scratch or importing a platform project (like the Demos):
php bootgly projects create
Or import any Project from Platforms or git repository carrying the Bootgly project signature (a *.Project.php file at its root):
php bootgly projects import
#📟 Bootgly CLI
Import `Demo/CLI` project and run Bootgly CLI demo
- Run the Bootgly CLI demo in terminal:
php bootgly demo
Setup Bootgly CLI globally
- Run the Bootgly CLI setup command as your ordinary user. It delegates only the fixed system installation operation through sudo when required:
php bootgly setup
Perform Bootgly tests
- Check the global bootstrap tests file
tests/autoboot.php; - Run the Bootgly CLI test command in terminal:
bootgly test
You can also run specific suites or test files by index:
bootgly test 16
bootgly test 16 1
#🌐 Bootgly WPI
Import `Demo/HTTP_Server_CLI` project and run the demo of HTTP Server
- Import a Web project with the wizard (
php bootgly projects import); - Run it in the terminal:
bootgly project Demo/HTTP_Server_CLI start
Routing HTTP Requests on the Server-side
Check the documentation for more details and examples: Bootgly Docs.
#📃 License
The Bootgly is open-sourced software licensed under the MIT license.
#📑 Policies
#📃 Versioning
Bootgly follows Semantic Versioning 2.0.0 and commits follow
Conventional Commits 1.0.0. From 1.0.0 on:
- Minor releases (
1.x.0) add capabilities and keep everything documented working as before. Patch releases (1.x.y) repair existing behavior. - Removing or renaming a public API, changing its established semantics, or adding a required
method to an interface applications implement is a
2.0.0change. A deprecation in a minor never authorizes a removal in the next minor — the deprecated way keeps working until2.0.0. - Internal migrations preserve public entry points and wire/storage compatibility. Runtime
behavior that is not documented, or is marked
@internal, is not covered. - Each minor tracks the two newest PHP minors (
8.4+today).
The full rules, the deprecation policy and what counts as public API live in the Versioning guide.
#🛟 Support policy
| Version | Bug fixes | Security fixes |
|---|---|---|
Latest 1.x minor |
✅ | ✅ |
Older 1.x minors |
❌ | ❌ — upgrade to the latest minor |
-beta / -rc pre-releases |
until the release they precede ships | until the release they precede ships |
0.x |
❌ | ❌ |
1.0 is not a long-term-support line: fixes land on the latest 1.x minor only, and
upgrading between 1.x minors is meant to be a version bump, not a migration. An LTS line
may be declared for a later minor; it is not promised.
#🔐 Security policy
Report vulnerabilities privately — never in a public issue — through GitHub private vulnerability reporting or cybersec@bootgly.com. The full policy, scope and audit history are in SECURITY.md.