minghuaw / fe2o3-amqp

A rust implementation of the AMQP1.0 protocol based on serde and tokio.
MIT License
64 stars 7 forks source link

Project status / Goals? #159

Closed RuthgerD closed 1 year ago

RuthgerD commented 1 year ago

This library seems quite promising for the ampq space, but as there is only a single (very active) contributor at this time I have to ask what this library is developed for?

Can fe2o3-amqp compete with https://github.com/amqp-rs/lapin ? I would like to try and use this library but unsure if it is ready for it.

thanks.

minghuaw commented 1 year ago

lapin implements AMQP 0.9.1 protocol, and fe2o3-amqp implements the AMQP 1.0 protocol, and only AMQP 1.0 is an ISO standard. Despite the similarity in the name, they are different and incompatible. So this will really depend on what messaging service you are planning to use. RabbitMQ supports AMQP 0.9.1 by default but can support AMQP 1.0 with a plugin. All other major AMQP based messaging services (that I am aware of) support AMQP 1.0 instead, including but not limited to:

  1. classic ActiveMQ
  2. ActiveMQ-Artemis
  3. Azure ServiceBus
  4. Azure Event Hubs
  5. Qpid Dispatch Router
  6. IBM MQ
  7. Solace

Here's a curated list of AMQP 1.0 related material maintained by someone who works at Microsoft: https://github.com/xinchen10/awesome-amqp

This is an almost complete implementation of the AMQP 1.0 core protocol with the exception on the transaction acquisition part, whose details are not clear in the spec and is not planned to be implemented unless more detailed explanation is provided. This started out as a personal project and still is a personal project so far (any contributions would be welcome though). I started this project because I didn't see a full rust implementation that was somewhat complete or easy to use, and I will keep maintaining this project.

Hopefully this helps. Feel free to reach out, I will be more than happy to help.

RuthgerD commented 1 year ago

Aha, I apologize for my ignorance regarding 0.9.1 and 1.0; quite an unfortunate situation that is.. sadly my needs are still "stuck" in 0.9.1 land so I will see my self the door.

Thank you for enriching the rust ecosystem however!