Awesome
Kraken Channel Component
Note: This repository is a part of Kraken Framework, but can be used freely as standalone library. If you are interested in more asynchronous components for PHP, check out the rest of Kraken repository or see our asynchronous application skeleton example.
Description
Channel is an event-based component that allows sending and receiving messsages asynchronously. It provides abstraction for various IPC models and is designed to be used in multi-threaded, multi-processed systems. It provides complex routing mechanisms, protocols, message encoders and extends behaviour of decorated IPC models by implementing hearbeat mechanisms, reconnect mechanisms and allowing usage of both async and request-reply messaging patterns.
Feature Highlights
Channel features:
- Message-driven communication,
- IPC models abstraction,
- Support for sending asynchronous messages,
- Support for request-reply pattern,
- Built-in offline and online message buffers,
- Built-in configurable protocol-based routing mechanisms,
- Separation of input and output routers,
- Heartbeat mechanism,
- Reconnect mechanism,
- Event-based API,
- Promise-based helpers,
- Kraken Framework compatibility,
- ...and more.
Examples
See more examples in official documentation.
Requirements
- PHP-5.6 or PHP-7.0+,
- UNIX or Windows OS.
Installation
composer require kraken-php/channel
Tests
Tests are provided within our write-only Framework repository.
Documentation
Documentation for this module can be found in the official documentation.
Contributing
This library is read-only subtree split of Kraken Framework. To make contributions, please go to Framework repository.
License
This library licensed under the MIT license, see more information in Kraken Framework license section.