All Projects → queue-interop → Queue Interop

queue-interop / Queue Interop

Licence: mit
Promoting the interoperability of message queue objects.

Projects that are alternatives of or similar to Queue Interop

Amqp Interop
PHP 7.1+. Promoting the interoperability of AMQPs. It is based on queue-interop
Stars: ✭ 124 (-68.92%)
Mutual labels:  specification, queue, interoperability
Specification
OpenMessaging Specification
Stars: ✭ 242 (-39.35%)
Mutual labels:  specification, queue
openmessaging.github.io
OpenMessaging homepage
Stars: ✭ 12 (-96.99%)
Mutual labels:  queue, specification
Rdotnet
.NET interop library to call the R statistical language in the same process
Stars: ✭ 297 (-25.56%)
Mutual labels:  interoperability
Go Diskqueue
A Go package providing a filesystem-backed FIFO queue
Stars: ✭ 302 (-24.31%)
Mutual labels:  queue
Estree
The ESTree Spec
Stars: ✭ 3,867 (+869.17%)
Mutual labels:  specification
Nsq
A realtime distributed messaging platform
Stars: ✭ 20,663 (+5078.7%)
Mutual labels:  queue
Clearly
Clearly see and debug your celery cluster in real time!
Stars: ✭ 287 (-28.07%)
Mutual labels:  queue
Bull
Bull module for Nest framework (node.js) 🐮
Stars: ✭ 356 (-10.78%)
Mutual labels:  queue
Connect
The swiss army knife of healthcare integration.
Stars: ✭ 326 (-18.3%)
Mutual labels:  interoperability
Webrtc Pc
WebRTC 1.0 API
Stars: ✭ 323 (-19.05%)
Mutual labels:  specification
Spscqueue
A bounded single-producer single-consumer wait-free and lock-free queue written in C++11
Stars: ✭ 307 (-23.06%)
Mutual labels:  queue
Huey
a little task queue for python
Stars: ✭ 3,761 (+842.61%)
Mutual labels:  queue
Hint
💡 A hinting engine for the web
Stars: ✭ 3,280 (+722.06%)
Mutual labels:  interoperability
Xxl Mq
A lightweight distributed message queue framework.(分布式消息队列XXL-MQ)
Stars: ✭ 358 (-10.28%)
Mutual labels:  queue
Jaas
Run jobs (tasks/one-shot containers) with Docker
Stars: ✭ 291 (-27.07%)
Mutual labels:  queue
Swarrot
A lib to consume message from any Broker
Stars: ✭ 350 (-12.28%)
Mutual labels:  queue
Mlib
Library of generic and type safe containers in pure C language (C99 or C11) for a wide collection of container (comparable to the C++ STL).
Stars: ✭ 321 (-19.55%)
Mutual labels:  queue
Horizon
Dashboard and code-driven configuration for Laravel queues.
Stars: ✭ 3,380 (+747.12%)
Mutual labels:  queue
Tsdoc
A doc comment standard for TypeScript
Stars: ✭ 3,785 (+848.62%)
Mutual labels:  specification

Queue Interoperability

Latest Stable Version Monthly Downloads Total Downloads License

About

queue-interop tries to identify and standardize a common way for PHP programs to create, send, receive and read MQ messages to achieve interoperability.

Through discussions and trials, we try to create a standard, made of common interfaces but also recommendations.

If PHP projects that provide queue implementations begin to adopt these common standards, then PHP applications and projects that use MQs can depend on the common interfaces instead of specific implementations. This facilitates a high-level of interoperability and flexibility that allows users to consume any MQ transport implementation that can be adapted to these interfaces.

The work done in this project is not officially endorsed by the PHP-FIG. We adhere to the spirit and ideals of PHP-FIG.

Installation

You can install this package through Composer:

# Install a Queue Interop compatible transport, for example 
$ composer require enqueue/fs

Examples

Send a message:

<?php

use Enqueue\Fs\FsConnectionFactory;

$context = (new FsConnectionFactory())->createContext();

$context->createProducer()->send(
    $context->createQueue('aQueue'), 
    $context->createMessage('aBody')
);

Consume a message:

<?php

use Enqueue\Fs\FsConnectionFactory;

$context = (new FsConnectionFactory())->createContext();

$consumer = $context->createConsumer($context->createQueue('aQueue'));

$timeout = 5000; // 5sec
if ($message = $consumer->receive($timeout)) {
    // process the message.

    $consumer->acknowledge($message);
}

Find out more here:

Compatible projects

Projects

Implementations

Amqp interop

There is AMQP interop built on top of Queue Interop. It is completly compatible with queue interop and only adds some AMQP specific features:

  • Queue\Exchange declaration
  • Queue\Exchange Binding.
  • Basic consume support.
  • and other AMQP specific features.

Compatible projects

Workflow

Everyone is welcome to join and contribute.

We try to not break BC by creating new interfaces instead of editing existing ones.

While we currently work on interfaces, we are open to anything that might help towards interoperability, may that be code, best practices, etc.

License

MIT license

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].