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.

See how it works Get in touch

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.

  1. 01

    Write

    Typed classes, attributes and explicit contracts describe the application.

  2. 02

    Compile

    The build resolves routes, services, configuration, listeners and templates once and reports conflicts.

  3. 03

    Run

    The compiled application serves requests as a long-lived worker.

  4. 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

    contractsclockcollectionmoneycryptoconfigcontainerkernel

  • HTTP and runtime

    httproutingkinetichttp-client

  • Templates

    weft

  • Data

    tesseracachefilesystem

  • Background work

    fluxschedulerevents

  • Realtime

    comet

  • Security

    aegis

  • Communication

    mailnotifications

  • Application support

    validationi18nlogconsolecli

  • Observability

    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

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.