I'm making a RabbitMQNIO client (AMQP 0.9.1) and I need help

Current RabbitMQ client https://github.com/rabbitmq/rabbitmq-objc-client is not working with Swift on Linux: https://github.com/rabbitmq/rabbitmq-objc-client/issues/14.

RabbitMQ is very popular message broker (used by many backend services) so I think it will be great to use it with Swift on Linux.

I decided to create it from scratch in pure Swift using Swift-NIO: https://github.com/funcmike/rabbitmq-nio.

I've implemented RabbitMQ (AMQP 0.9.1) protocol and client library as separate packages.
Feature-wise is mostly completed (consuming, publishing etc.) - of course it needs a lot more work for first release.

Looking for someone to help me by reviewing code - providing suggestions how to improve it - any help will be appreciated.

Thanks in advance!


What does Objective-C has to do with that, that works just fine on Linux since like 1996 or sth?

Mental shortcut - I'm not saying that Objective-C does not work on Linux. Please read https://github.com/rabbitmq/rabbitmq-objc-client/issues/14 for clarification.
Thanks for pointing that out I'll edit my post to not confuse people.

Right, you've been saying that

Current RabbitMQ client ... it's not compatible with Linux: ... because it's implemented in Objective-C

Why would the RabbitMQ client not be compatible w/ Linux because of Objective-C?

Yeah, I've made a mistake and I corrected it sorry.

That said it's true that rabbitmq-objc-client is not working with Swift on Linux - If You really want details why please ask creators.

1 Like

Oh, why it isn't working w/ Swift on Linux is easy: Apple didn't incorporate any Linux Objective-C into Linux Swift (I'm pretty sure it wouldn't even accept 3rd party patches to fix that).

I am currently not able to help (maybe later), but a Swift based RabbitMQ client is a very welcome undertaking. Thank you for your efforts!


This is exactly the package that is/was missing for me to decide to give Swift a go as the language/technology for our future server development!

I'll do some testing and let you know.