Skip to content
← Back to projects

Bootgly

The Bootgly PHP Framework.

bootgly-logo

Bootgly

The native, zero-dependency PHP framework.
One async core for Web 🌐 and CLI 📟 — built for performance and clarity.

Github Actions - Bootgly Workflow Bootgly License

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 /plaintext route, 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

Check Benchmark Detailed Results

[!NOTE] Stable — the 1.x line. Bootgly follows Semantic Versioning: minor releases add capabilities, patch releases repair, and nothing documented breaks before 2.0.0. Fixes land on the latest 1.x minor — read the Versioning and Support policy sections below, or the full Versioning guide. The documentation covers every layer.

#Table of Contents


Back to top

#🟢 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.kit gives you the whole kit — framework, Console and Web — ready to create and run projects. latest and the 1 / 1.x aliases follow the stable line; pin an exact version (bootgly/bootgly.kit:<version>) for a build that never moves. This repository publishes bootgly/bootgly, the framework image you build your own on — it is always pulled by an explicit tag (<version>, 1.x, 1; never latest); see the Dockerfile and the Docker guide.

#PHP Packages

  • php-cli ⚠️
  • php-openssl ⚠️
  • php-readline ⚠️
  • php-mbstring 👍

--

⚠️ = Required

👍 = Recommended


Back to top

#🌱 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

#💖 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.


Back to top

#🚀 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
  1. Run the Bootgly CLI demo in terminal:
php bootgly demo
Setup Bootgly CLI globally
  1. 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
  1. Check the global bootstrap tests file tests/autoboot.php;
  2. 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
  1. Import a Web project with the wizard (php bootgly projects import);
  2. 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.


Back to top

#📃 License

The Bootgly is open-sourced software licensed under the MIT license.


Back to top

#📑 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.0 change. A deprecation in a minor never authorizes a removal in the next minor — the deprecated way keeps working until 2.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.

New version available.