- Add event Event::POOL occurs when Flow needs to count IPs to process.
- Add
Flow\IpPool
for managing pools of Ips. - Update
Flow\Event\PullEvent
to pull multiple Ips instead one. - Move
Flow::do
toFlowFactory::create
- Add
Flow\Driver\ParallelDriver
- Flow can now use
Flow\JobInterface
as job input - Add Symfony Bridge
- new
Flow\Attribute\AsJob
attribute allows cast job on function or class and embed it's name and description
- new
- Add new Interface Flow\AsyncHandlerInterface to control the Event::SYNC step when processing an IP
- Add Flow\AsyncHandler\AsyncHandler the default handler when Event::SYNC is dispatched
- Add Batch IP with Flow\AsyncHandler\BatchAsyncHandler from
- Add Flow\AsyncHandler\DeferAsyncHandler to gain granular control on the async Event::SYNC step event
- Flow\Flow\YFlow rework
- Add more exemples in
examples/yflow.php
to play with Y-Combinators - Update DX for Flow\DriverInterface : add
defer
to gain much granular control on asynchronous callbacks
- Add event system for processing IpStrategy
- Remove
start
andstop
in favor ofawait
for Flow\DriverInterface
- Add Flow\FlowInterface::do notation from https://github.com/fp4php/functional
- Update Flow\FlowInterface::fn to accept as first argument
- Closure : it's the job itself
- array : constructor arguments for Flow instanciation
- array (view as shape) : configuration for Flow instanciation
- FlowInterface : the FlowInterface instance itself
- array : map of all possible above choices
- Update to Symfony 7.0
- Add generic templating
- Add Flow\Driver\SpatieDriver
- Add more quality tools from https://github.com/IngeniozIT/php-skeleton
- Update DX for Flow\DriverInterface
- Update
async
that now $onResolve get called with async $callback result or Flow\Exception as first argument - Update
tick
that now return a Closure to cleanup tick interval
- Update
- Add Flow\Driver\FiberDriver from https://github.com/jolicode/castor/blob/main/src/functions.php
- Upgrade to Symfony 6.3 and PHPUnit 10.3
- Refactor docs structure
- Refactor tooling from https://github.com/jolicode/castor
- Update to PHP 8.2
- Upgrade from amphp/amp v2 to amphp/amp v3 that use PHP Fibers
- Upgrade from react/event-loop v1 to reactphp/async v4 that use PHP Fibers
- Upgrade from Swoole v5 to Openswoole v22
- Rename function
corouting
toasync
in Flow\DriverInterface - Add function
sleep
in Flow\DriverInterface
- Rename entire project from
Railway FBP
toFlow
- Bundle
Flow
to PHP monorepository - Merge from
packages/symfony
topackages/php
and make Flow Symfony friendly - New DX interface
Flow\FlowInterface
- Error managment is now integrated to Flow
- Remove context associated with processing IP
- Deprecate
Flow\Flow\SequenceFlow
in favor forFlow\Flow\Flow
- Deprecate
Flow\Flow\ErrorFlow
in favor forFlow\Flow\Flow
- Update
Flow\Flow\YFlow
and make it plain native - Update
Flow\IP
that use readonly object - New Flow logo
- Release MIT License
- Update dependencies to PHP 8.1
- Add
Flow\Flow\YFlow
that allows introduce recursivity into Flow language approach
- Add code of conduct
- Define Monads
- Add
Flow\TransportFlow
- Flow can process multiple jobs in parallel
- Add Symfony integration
- Define monads
- Refactor structure
- Decouple integration
- Add
Flow\IpStrategy
add several Ip strategy for data processing
- Add
Flow\Driver\DriverInterface
- Add
Flow\Driver\AmpDriver
- Add
Flow\Driver\ReactDriver
- Add
Flow\Driver\SwooleDriver
- Add
Flow\Producer\CollectionConsumer
- Add
Flow\Producer\CollectionProducer
- Add
Flow\Transport\CollectionTransport
- Initial release