ProductPromotion
Logo

Ruby

made by https://0x3d.site

GitHub - ruby-amqp/bunny: Bunny is a popular, easy to use, mature Ruby client for RabbitMQ
Bunny is a popular, easy to use, mature Ruby client for RabbitMQ - ruby-amqp/bunny
Visit Site

GitHub - ruby-amqp/bunny: Bunny is a popular, easy to use, mature Ruby client for RabbitMQ

GitHub - ruby-amqp/bunny: Bunny is a popular, easy to use, mature Ruby client for RabbitMQ

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

For environments that use TLS, Bunny expects Ruby installations to use a recent enough OpenSSL version that includes support for TLS 1.3.

JRuby

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

Modern Bunny releases target currently supported RabbitMQ release series.

Change Log

Change log.

Installation & Bundler Dependency

Most Recent Release

Gem Version

Bundler Dependency

To use Bunny in a project managed with Bundler:

gem "bunny", ">= 2.23.0"

With Rubygems

To install Bunny with RubyGems:

gem install bunny

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
ch.confirm_select

# declare a queue
q  = ch.queue("test1")
q.subscribe(manual_ack: true) do |delivery_info, metadata, payload|
  puts "This is the message: #{payload}"
  # acknowledge the delivery so that RabbitMQ can mark it for deletion
  ch.ack(delivery_info.delivery_tag)
end

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

# await confirmations from RabbitMQ, see
# https://www.rabbitmq.com/publishers.html#data-safety for details
ch.wait_for_confirms

# give the above consumer some time consume the delivery and print out the message
sleep 1

puts "Done"

ch.close
# close the connection
conn.close

Documentation

Getting Started

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

Guides

Bunny documentation guides are under docs/guides in this repository:

Some highly relevant RabbitMQ documentation guides:

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

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.

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory