GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - queue-interop/queue-interop: Promoting the interoperability of message queue objects.

BranchesTags
Open more actions menu

Latest commit

 

History

96 Commits
96 Commits

Folders and files

NameName
Last commit message
Last commit date
src
src
 
 
tests/Impl
tests/Impl
 
 
.gitignore
.gitignore
 
 
.travis.yml
.travis.yml
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
composer.json
composer.json
 
 
phpunit.xml.dist
phpunit.xml.dist
 
 

Repository files navigation

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:

  • Enqueue transport docs contains a lot how to use example.
  • Formapro's Blog contains variety blog post about Queue Interop usage.
  • RabbitMQ's official tutorials ported to AMQP Interop.

Compatible projects

Projects

  • Enqueue
  • Swarrot
  • Bernard
  • vladimir-yuldashev/laravel-queue-rabbitmq
  • sonata-project/notification-bundle
  • yiisoft/yii2-queue
  • queue-interop/ext - Queue Interop as PHP extension. Useful for Phalcon developers.

Implementations

  • enqueue/amqp-ext
  • enqueue/amqp-lib
  • enqueue/amqp-bunny
  • makasim/rabbitmq-cli-consumer-client
  • enqueue/pheanstalk
  • enqueue/stomp
  • Amazon SQS enqueue/sqs
  • Amazon SNS enqueue/sns
  • Amazon SNS\SQS enqueue/sns
  • Google PubSub enqueue/gps
  • enqueue/rdkafka
  • enqueue/redis
  • enqueue/mongodb
  • enqueue/gearman
  • enqueue/dbal
  • enqueue/fs
  • enqueue/null
  • enqueue/wamp
  • makasim/php-fpm-queue
  • assoconnect/enqueue-azure

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

  • enqueue/amqp-ext
  • enqueue/amqp-lib
  • enqueue/amqp-bunny
  • makasim/rabbitmq-cli-consumer-client

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

About

Promoting the interoperability of message queue objects.

Topics

interoperabilityphpqueuespecification

Resources

Readme
MIT license
Activity
Custom properties

Stars

480 stars

Watchers

13 watching

Forks

21 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.