nexus-actors / skeleton
Minimal skeleton for building applications on the Nexus actor system (PHP 8.5+).
v0.1.0
2026-07-21 18:21 UTC
Requires
- php: >=8.5.7
- nexus-actors/app: ^0.1
- nexus-actors/core: ^0.1
- nexus-actors/runtime: ^0.1
- nexus-actors/runtime-fiber: ^0.1
- psr/log: ^3.0
- symfony/config: ^7.0
- symfony/console: ^7.0
- symfony/dependency-injection: ^7.0
- symfony/dotenv: ^7.0
Requires (Dev)
- nexus-actors/maker: ^0.1
- phpunit/phpunit: ^13.0
README
Start a Nexus actor-system project in three commands:
composer create-project nexus-actors/skeleton my-app
cd my-app
bin/console run
create-project launches an interactive setup wizard (nexus:setup) that picks your
runtime (Fiber for development, Swoole for production) and optional modules —
persistence, OpenTelemetry observability, TCP clustering, and the Symfony Messenger
bridge. TCP clustering and the Symfony Messenger bridge are marked experimental:
pre-1.0, not production-ready, APIs may change.
Everyday commands
bin/console make:actor Payment --with-message # generate src/Actor/PaymentActor.php + message bin/console make:actor Ticker --functional # closure-based actor (Behavior::receive factory) bin/console make:actor Order --type=event-sourced # persistent actor factory (also: stateful, durable-state) bin/console make:message OrderPlaced # generate src/Message/OrderPlaced.php bin/console run # boot the actor system (alias of nexus:run) bin/console nexus:setup # re-run the wizard to add modules later
Project layout
bin/console command-line entry point
config/services.php DI container config (autowires src/)
config/packages/ per-module config (runtime.php picks your Runtime)
src/Actor/ #[AsActor] handlers — auto-spawned at boot
src/Message/ message classes
src/Kernel.php boots the container and the ActorSystem
Actors are plain classes with #[AsActor('name')] — the Kernel spawns every tagged
handler at boot. See the Quick Start
for a guided tour.