README.md in amqp-1.3.0 vs README.md in amqp-1.4.0
- old
+ new
@@ -1,24 +1,30 @@
# Ruby amqp gem: the asynchronous Ruby RabbitMQ client
-[Ruby amqp gem](http://rubyamqp.info) is a widely used, feature-rich, well-maintained asynchronous RabbitMQ client with batteries included.
-This library works with
+[Ruby amqp gem](http://rubyamqp.info) is a feature-rich,
+EventMachine-based RabbitMQ client with batteries included.
- * Ruby 2.1
- * Ruby 2.0
- * Ruby 1.9.3
- * [JRuby](http://jruby.org)
- * [Rubinius](http://rubini.us)
- * Ruby 1.9.2
- * Ruby 1.8.7
- * [REE](http://www.rubyenterpriseedition.com),
+It implement [AMQP
+0.9.1](http://www.rabbitmq.com/tutorials/amqp-concepts.html) and
+support [RabbitMQ extensions to AMQP
+0.9.1](http://www.rabbitmq.com/extensions.html).
-and is licensed under the [Ruby License](http://www.ruby-lang.org/en/LICENSE.txt)
-0.8.0 and later versions of amqp gem implement [AMQP 0.9.1](http://www.rabbitmq.com/tutorials/amqp-concepts.html) (see also [AMQP 0.9.1 spec document](http://bit.ly/amqp091spec)) and support [RabbitMQ extensions to AMQP 0.9.1](http://www.rabbitmq.com/extensions.html).
+## A Word of Warning: Use This Only If You Already Use EventMachine
+Unless you **already use EventMachine**, there is no real reason to
+use this client. Consider [Bunny](http://rubybunny.info) or [March Hare](http://rubymarchhare.info) instead.
+amqp gem brings in a fair share of EventMachine complexity which
+cannot be fully eliminated. Event loop blocking, writes that happen
+at the end of loop tick, uncaught exceptions in event loop silently killing it:
+it's not worth the pain unless you've already deeply invested in EventMachine
+and understand how it works.
+
+So, just use Bunny or March Hare. You will be much happier.
+
+
## I know what RabbitMQ is, how do I get started?
See [Getting started with amqp gem](http://rubyamqp.info/articles/getting_started/) and other [amqp gem documentation guides](http://rubyamqp.info/).
We recommend that you read [AMQP 0.9.1 Model Explained](http://www.rabbitmq.com/tutorials/amqp-concepts.html), too.
@@ -124,11 +130,25 @@
[Getting started guide](http://rubyamqp.info/articles/getting_started/) explains this and two more examples in detail,
and is written in a form of a tutorial. See [AMQP 0.9.1 Model Explained](http://www.rabbitmq.com/tutorials/amqp-concepts.html) if you want
to learn more about RabbitMQ protocol principles & concepts.
+## Supported Ruby Versions
+This library works with
+
+ * Ruby 2.1
+ * Ruby 2.0
+ * Ruby 1.9.3
+ * [JRuby](http://jruby.org)
+ * [Rubinius](http://rubini.us)
+ * Ruby 1.9.2
+ * Ruby 1.8.7
+ * [REE](http://www.rubyenterpriseedition.com),
+
+
+
## Documentation: tutorials, guides & API reference
We believe that in order to be a library our users **really** love, we need to care about documentation as much as (or more)
code readability, API beauty and autotomated testing across 5 Ruby implementations on multiple operating systems. We do care
about our [documentation](http://rubyamqp.info): **if you don't find your answer in documentation, we consider it a high severity bug** that you
@@ -209,11 +229,11 @@
* [Continous integration status](http://travis-ci.org/#!/ruby-amqp/amqp)
## License ##
-AMQP gem is licensed under the [Ruby License](http://www.ruby-lang.org/en/LICENSE.txt).
+amqp gem is licensed under the [Ruby License](http://www.ruby-lang.org/en/LICENSE.txt).
## Credits and copyright information ##
@@ -244,37 +264,9 @@
* [A Note on Distributed Computing](http://research.sun.com/techrep/1994/smli_tr-94-29.pdf)
* [Convenience Over Correctness](http://steve.vinoski.net/pdf/IEEE-Convenience_Over_Correctness.pdf)
* Joe Armstrong on [Erlang messaging vs RPC](http://armstrongonsoftware.blogspot.com/2008/05/road-we-didnt-go-down.html)
-
-## (Very) Short FAQ ##
-
-### So, does amqp gem only work with RabbitMQ?
-
-This library is developed and tested primarily with [RabbitMQ](http://rabbitmq.com), although it should be compatible with any
-server implementing the [AMQP 0.9.1 spec](http://bit.ly/hw2ELX). For AMQP 0.8 brokers, use amqp gem version 0.7.x.
-
-### Why isn't Ruby 1.8.7-p249 supported? Will it be supported in the future?
-
-In order to make code like the following (pseudo-synchronous) work
-
-``` ruby
-conn = AMQP.connect
-ch = AMQP::Channel.new(conn)
-
-ex = ch.default_exchange
-ex.publish(some_data)
-```
-
-and not be affected by this [Ruby 1.8.7-p249-specific bug (super called outside of method)](http://bit.ly/iONBmH), we need to
-avoid any inheritance for key amqp gem classes: Channel, Queue, Exchange, Consumer. This will take a significant refactoring effort and
-we do not expect this to change at this time.
-
-
-### How does amqp gem relate to amq-client gem, amq-protocol and libraries like Bunny?
-
-See [this page about AMQP gems family](https://github.com/ruby-amqp/amq-client/blob/master/README.textile)
[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/ruby-amqp/amqp/trend.png)](https://bitdeli.com/free "Bitdeli Badge")