In active development towards 1.0
Do the work at build time. Run as a worker.
Plerino is an open-source PHP framework. Routing, the service container, configuration, event listeners and templates are compiled ahead of time, and the application then runs as a long-lived worker.
- Language
- PHP 8.5.12+
- Licence
- MIT
- Steward
- PHRAMEA
- Release
- Pre-1.0
01Purpose
Move the work from the request to the build
Plerino exists to make PHP backends predictable. Decisions that frameworks usually take while the application runs are taken once, when it is built, and the result is a long-lived worker with fewer moving parts.
- 01
Predictable by construction
Routes, services, configuration, listeners and templates are fixed at build time. Conflicts and mistakes surface in the build, not in production.
- 02
Long-lived by design
The application starts once and serves many requests as a worker, with worker recycling built in.
- 03
Explicit instead of magic
Typed APIs, attributes and explicit contracts replace hidden behaviour. What the code says is what runs.
02Features
What Plerino provides
One consistent set of packages. Each package has its own tests, documentation and changelog.
- 01
Compiled application
Routing, the service container, configuration, event listeners and templates are compiled ahead of time into plain PHP.
- 02
Worker runtime
Built for FrankenPHP workers, with adapters for PHP-FPM, Swoole and RoadRunner and built-in worker recycling.
- 03
Typed HTTP
Request handling based on PSR-7, PSR-15 and PSR-17, typed route parameters and errors as RFC Problem Details.
- 04
Compiled templates
Weft templates compile to PHP, escape output by default and have editor support for Visual Studio Code.
- 05
Data access
Entities, repositories, a query builder and migrations for PostgreSQL, MySQL and SQLite. A document store is in progress.
- 06
Background work
Queues, jobs, batches and workflows, a scheduler and events, including dead-letter handling.
- 07
Realtime
Comet provides a server, channels, presence, replay and server-sent events, with a typed TypeScript client.
- 08
Security by default
Aegis covers sessions, guards, passkeys, TOTP, tokens and policies. libsodium is the only cryptography provider and secrets are redacted from logs.
- 09
Observability
OpenTelemetry-based telemetry and developer tooling through the Lens package.
03How it works
From source to worker
One pipeline, four stages.
- 01
Write
Typed classes, attributes and explicit contracts describe the application.
- 02
Compile
The build resolves routes, services, configuration, listeners and templates once and reports conflicts.
- 03
Run
The compiled application serves requests as a long-lived worker.
- 04
Observe
Telemetry follows a request across HTTP, data, queues and realtime with OpenTelemetry.
04Packages
Packages
A monorepo of more than 30 Composer packages, grouped by area.
Foundation
contractsclockcollectionmoneycryptoconfigcontainerkernelHTTP and runtime
httproutingkinetichttp-clientTemplates
weftData
tesseracachefilesystemBackground work
fluxschedulereventsRealtime
cometSecurity
aegisCommunication
mailnotificationsApplication support
validationi18nlogconsolecliObservability
lens
Client libraries: a typed TypeScript client for Comet and Weft language support for Visual Studio Code.
Built on standards
- PSR-3
- PSR-6
- PSR-7
- PSR-15
- PSR-16
- PSR-17
- PSR-18
- PSR-20
- ICU MessageFormat
- Problem Details
- OpenTelemetry
- libsodium
05Quality
Engineering quality
Every change merges only after the full quality gate passes on PHP 8.5 and PHP 8.6.
Performance and security claims are made only where a reproducible benchmark or test backs them.
- Code style (PER-CS 3.0)
- Static analysis at the maximum level with project rules
- Tests with a minimum coverage per package
- Mutation testing
- Fuzzing and benchmark smoke runs
- Documentation checks
- Changelog checks
- Dependency and secret scanning
Security
Report a vulnerability privately
Do not open a public issue for a security problem. Write to security@plerino.dev and encrypt sensitive material with the project OpenPGP key.
OpenPGP fingerprintCE54 B9BD 090A 77C8 76F1 6469 5738 9547 7EB3 C109
06Status
Where the project stands
Plerino is under active development towards 1.0. There is no stable release yet and public APIs may change before 1.0.
Implemented in the repository
- Foundation, container and kernel
- HTTP, routing and the worker runtime
- Compiled templates
- SQL data access
- Queues, scheduler and events
- Realtime communication
- Authentication and authorization
- Mail and notifications
- OpenTelemetry telemetry
In progress
- Document store and vector search
Still to come
- Application skeleton and starter kits
- Public documentation on this site
- Stable 1.0 release
07FAQ
Frequently asked questions
What is Plerino?
An open-source PHP framework that compiles routing, services, configuration, listeners and templates at build time and runs the application as a long-lived worker.
Is Plerino ready for production?
Not yet. There is no stable release and public APIs may change before 1.0.
Which PHP versions does it support?
PHP 8.5.12 or later. Every change is checked on PHP 8.5 and PHP 8.6.
What does it cost and who maintains it?
Plerino is free software under the MIT licence, maintained by PHRAMEA.
How do I report a security problem?
Send a private report to security@plerino.dev. Please do not open a public issue. An OpenPGP key is available for encrypted reports.
Where can I read the documentation?
The documentation is being prepared for publication on this site.
08Contact
Contact
Write to the address that fits your topic.
- Generalhello@plerino.devQuestions about the project
- Securitysecurity@plerino.devPrivate vulnerability reports
- Presspress@plerino.devPress and partnerships