chore: finish package to Blax standard (namespace, README, tests, scaffolding)
- Rename namespace BlaxSoftware\ReactPhpKernel -> Blax\ReactPhpKernel (house
standard; the BlaxSoftware\LaravelWebSockets form is grandfathered only there)
- README rewritten to the Blax OSS package principles: OSS banner, title+badges,
emoji feature list, quick start, what's-in-the-box, testing, star history
- Add PHPUnit suite (13 tests / 19 assertions, green) + phpunit.xml.dist
- Add pint.json (laravel preset, applied), composer scripts (test/lint),
.gitattributes export-ignores, test.sh (nix), CHANGELOG
- composer.json: Blax psr-4, PHP ^8.1-^8.4, dev deps
rel learn-atc #1055
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 11:24:36 +00:00
|
|
|
# Changelog
|
|
|
|
|
|
|
|
|
|
All notable changes to `blax-software/reactphp-kernel` are documented here. This
|
|
|
|
|
project adheres to [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and
|
|
|
|
|
Blax Software's backward-compatibility guarantee (every push to `master` is a
|
|
|
|
|
potentially-shipped, backward-compatible release).
|
|
|
|
|
|
|
|
|
|
## [Unreleased]
|
|
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
|
|
- `Kernel` — owns the ReactPHP loop, registers `Contracts\Server`s, installs
|
|
|
|
|
signal handlers, `run()` and graceful `stop()`.
|
|
|
|
|
- `Contracts\Server` — an attachable protocol server (`boot(LoopInterface)` +
|
|
|
|
|
`shutdown()`).
|
|
|
|
|
- `Server\SocketServerFactory` — plain-TCP or TLS listening socket, no framework
|
|
|
|
|
coupling.
|
|
|
|
|
- `Ipc\SocketPairIpc` — event-driven parent/child IPC over a Unix socket pair
|
|
|
|
|
(lifted from `blax-software/laravel-websockets`; it was already
|
|
|
|
|
framework-agnostic).
|
|
|
|
|
- `Process\SignalHandler` — SIGINT/SIGTERM → graceful shutdown.
|
|
|
|
|
- `Process\ChildReaper` — reaps exited forked children (SIGCHLD + periodic
|
|
|
|
|
backstop); the reusable form of laravel-websockets #982.
|
2026-07-07 11:49:43 +00:00
|
|
|
- PSR-3 logging: `Kernel` accepts an optional `LoggerInterface` (defaults to
|
|
|
|
|
`NullLogger`), exposes `logger()`, and emits boot/running/shutdown lifecycle
|
|
|
|
|
lines.
|
|
|
|
|
- `Support\ConnectionRegistry` — a transport-agnostic id→connection registry
|
|
|
|
|
(add/remove/get/each/onAdd/onRemove/clear) for presence + broadcast, shared by
|
|
|
|
|
protocol servers (WS channels, WebRTC peers).
|