I would recommend amqp.node and bramqp over node-amqp. node-amqp has a lot of bugs and is poorly maintained, and it hides the “channel” concept which introduces a lot of problems for rabbitmq servers (because they are never closed).
I’m the guy that wrote the bramqp library. So I’m going to admit from the start I may be a bit biased. 😛
In my opinion, as long as you know the spec, bramqp should work fine. Otherwise, use amqp.node
The following are the amqp libraries available for node.js.
amqplib / amqp.node – promise style, still updated, looks pretty stable and easy
bramqp – provides a full low level access to AMQP functions, not recommended for starting out
amqp-coffee – coffeescript implementation similar to amqp/node-amqp
amqp / node-amqp – popular, fixed API, not updated as often, a few odd bugs, stable but limited
The following libraries use one of the previous libraries, while providing an easier to use interface or adding features
rabbit.js uses amqplib/amqp.node
wascally uses amqplib/amqp.node
amq uses amqplib/amqp.node
amqpea uses bramqp
easy-amqp uses amqp/node-amqp
rabbus uses wascally
I am also going to add node-amqp10 separately, as it can connect to amqp 1.0 servers.
If there are any more that I should add, just let me know.
This question probably requires an updated answer in 2020.
You may still refer to bakkerthehacker’s answer as to what the different libraries do.
- amqp doesn’t seem to be supported anymore. It was last
published 2 years ago.
- For AMQP 0-9-1 protocol, amqplib is the most widely used
- For AMQP 1.0 protocol, you could go with rhea.