All Projects → ruby-amqp → Bunny

ruby-amqp / Bunny

Licence: other
Bunny is a popular, easy to use, mature Ruby client for RabbitMQ

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Bunny

Remit
RabbitMQ-backed microservices supporting RPC, pubsub, automatic service discovery and scaling with no code changes.
Stars: ✭ 24 (-98.04%)
Mutual labels:  rabbitmq, messaging, amqp
Humusamqp
PHP 7 AMQP library
Stars: ✭ 70 (-94.28%)
Mutual labels:  rabbitmq, messaging, amqp
Rabbitmq Server
Open source RabbitMQ: core server and tier 1 (built-in) plugins
Stars: ✭ 9,064 (+640.52%)
Mutual labels:  rabbitmq, messaging, amqp
Servicebus
Simple service bus for sending events between processes using amqp.
Stars: ✭ 415 (-66.09%)
Mutual labels:  rabbitmq, messaging, amqp
Garagemq
AMQP message broker implemented with golang
Stars: ✭ 153 (-87.5%)
Mutual labels:  rabbitmq, messaging, amqp
Php Amqplib
The most widely used PHP client for RabbitMQ
Stars: ✭ 3,950 (+222.71%)
Mutual labels:  rabbitmq, messaging, amqp
Rabbitmqbundle
RabbitMQ Bundle for the Symfony2 web framework
Stars: ✭ 1,125 (-8.09%)
Mutual labels:  rabbitmq, messaging, amqp
Lapin
AMQP client library in Rust, with a clean, futures based API
Stars: ✭ 497 (-59.4%)
Mutual labels:  messaging, amqp
Machinery
Machinery is an asynchronous task queue/job queue based on distributed message passing.
Stars: ✭ 5,821 (+375.57%)
Mutual labels:  rabbitmq, amqp
Node Celery
Celery client for Node.js
Stars: ✭ 648 (-47.06%)
Mutual labels:  rabbitmq, amqp
Spring Boot Rabbitmq
Spring Boot集成rabbitMQ实现消息推送
Stars: ✭ 24 (-98.04%)
Mutual labels:  rabbitmq, amqp
Azure Service Bus
☁️ Azure Service Bus service issue tracking and samples
Stars: ✭ 472 (-61.44%)
Mutual labels:  messaging, amqp
Amqp
Go client for AMQP 0.9.1
Stars: ✭ 4,170 (+240.69%)
Mutual labels:  rabbitmq, amqp
Activemq Artemis
Mirror of Apache ActiveMQ Artemis
Stars: ✭ 685 (-44.04%)
Mutual labels:  messaging, amqp
Yii2 Queue
Yii2 Queue Extension. Supports DB, Redis, RabbitMQ, Beanstalk and Gearman
Stars: ✭ 977 (-20.18%)
Mutual labels:  rabbitmq, amqp
Aio Pika
AMQP 0.9 client designed for asyncio and humans.
Stars: ✭ 611 (-50.08%)
Mutual labels:  rabbitmq, amqp
Laravel Queue Rabbitmq
RabbitMQ driver for Laravel Queue. Supports Laravel Horizon.
Stars: ✭ 1,175 (-4%)
Mutual labels:  rabbitmq, amqp
Masstransit
Distributed Application Framework for .NET
Stars: ✭ 4,103 (+235.21%)
Mutual labels:  rabbitmq, messaging
Tackle
💯 percent reliable microservice communication
Stars: ✭ 44 (-96.41%)
Mutual labels:  rabbitmq, amqp
Yii2 Rabbitmq
RabbitMQ Extension for Yii2
Stars: ✭ 52 (-95.75%)
Mutual labels:  rabbitmq, amqp

Bunny, a Ruby RabbitMQ Client

Bunny is a RabbitMQ client that focuses on ease of use. It is feature complete, supports all recent RabbitMQ features and does not have any heavyweight dependencies.

I Know What RabbitMQ and Bunny are, How Do I Get Started?

Right here!

What is Bunny Good For?

One can use Bunny to make Ruby applications interoperate with other applications (both built in Ruby and not). Complexity and size may vary from simple work queues to complex multi-stage data processing workflows that involve many applications built with all kinds of technologies.

Specific examples:

  • Events collectors, metrics & analytics applications can aggregate events produced by various applications (Web and not) in the company network.

  • A Web application may route messages to a Java app that works with SMS delivery gateways.

  • MMO games can use flexible routing RabbitMQ provides to propagate event notifications to players and locations.

  • Price updates from public markets or other sources can be distributed between interested parties, from trading systems to points of sale in a specific geographic region.

  • Content aggregators may update full-text search and geospatial search indexes by delegating actual indexing work to other applications over RabbitMQ.

  • Companies may provide streaming/push APIs to their customers, partners or just general public.

  • Continuous integration systems can distribute builds between multiple machines with various hardware and software configurations using advanced routing features of RabbitMQ.

  • An application that watches updates from a real-time stream (be it markets data or Twitter stream) can propagate updates to interested parties, including Web applications that display that information in the real time.

Supported Ruby Versions

Modern Bunny versions support

  • CRuby 2.3 through 2.7 (inclusive)

Bunny works sufficiently well on JRuby but there are known JRuby bugs in versions prior to JRuby 9000 that cause high CPU burn. JRuby users should use March Hare.

Bunny 1.7.x was the last version to support CRuby 1.9.3 and 1.8.7

Supported RabbitMQ Versions

Bunny 1.5.0 and later versions only support RabbitMQ 3.3+. Bunny 1.4.x and earlier supports RabbitMQ 2.x and 3.x.

Change Log

Bunny is a mature library (started in early 2009) with a stable public API.

Change logs per release series:

Installation & Bundler Dependency

Most Recent Release

Gem Version

With Rubygems

To install Bunny with RubyGems:

gem install bunny

Bundler Dependency

To use Bunny in a project managed with Bundler:

gem "bunny", ">= 2.17.0"

Quick Start

Below is a small snippet that demonstrates how to publish and synchronously consume ("pull API") messages with Bunny.

For a 15 minute tutorial using more practical examples, see Getting Started with RabbitMQ and Ruby using Bunny.

require "bunny"

# Start a communication session with RabbitMQ
conn = Bunny.new
conn.start

# open a channel
ch = conn.create_channel

# declare a queue
q  = ch.queue("test1")

# publish a message to the default exchange which then gets routed to this queue
q.publish("Hello, everybody!")

# fetch a message from the queue
delivery_info, metadata, payload = q.pop

puts "This is the message: #{payload}"

# close the connection
conn.stop

Documentation

Getting Started

For a 15 minute tutorial using more practical examples, see Getting Started with RabbitMQ and Ruby using Bunny.

Guides

Other documentation guides are available at rubybunny.info:

API Reference

Bunny API Reference.

Community and Getting Help

Mailing List

Bunny has a mailing list. Please use it for all questions, investigations, and discussions. GitHub issues should be used for specific, well understood, actionable maintainers and contributors can work on.

We encourage you to also join the RabbitMQ mailing list mailing list. Feel free to ask any questions that you may have.

Continuous Integration

Build Status

News & Announcements on Twitter

To subscribe for announcements of releases, important changes and so on, please follow @rubyamqp on Twitter.

More detailed announcements can be found in the RabbitMQ Ruby clients blog.

Reporting Issues

If you find a bug you understand well, poor default, incorrect or unclear piece of documentation, or missing feature, please file an issue on GitHub.

Please use Bunny's mailing list for questions, investigations, and discussions. GitHub issues should be used for specific, well understood, actionable maintainers and contributors can work on.

When filing an issue, please specify which Bunny and RabbitMQ versions you are using, provide recent RabbitMQ log file contents, full exception stack traces, and steps to reproduce (or failing test cases).

Other Ruby RabbitMQ Clients

The other widely used Ruby RabbitMQ client is March Hare (JRuby-only). It's a mature library that require RabbitMQ 3.3.x or later.

Contributing

See CONTRIBUTING.md for more information about running various test suites.

License

Released under the 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].