rabbitmq and cpp

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

rabbitmq and cpp

Full Name
Hi,

I am new to RabbitMQ and to AMQP in general. I didn't find a forum/mailing list for general AMQP questions. Just a forum at amqp.org, but that is kind of dead. I want to exchange messages between Java and c++ applications. The Java tutorials for rabbitmq were easy, but the c++ client is really hard to build.

I watched a couple of amqp videos and it is always mentioned that amqp is a wire protocol just like http, and that that is a big plus (I agree).
So why is there a need for a rabbitmq cpp client and a Apache qpid client etc. in the first place?
Why isn't there only one generic amqp cpp client?

regards

sven
_______________________________________________
rabbitmq-discuss mailing list
[hidden email]
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Reply | Threaded
Open this post in threaded view
|

Re: rabbitmq and cpp

Matthias Radestock-3
On 12/05/14 02:05, Full Name wrote:
> I am new to RabbitMQ and to AMQP in general. I didn't find a
> forum/mailing list for general AMQP questions. Just a forum at
> amqp.org, but that is kind of dead. I want to exchange messages
> between Java and c++ applications. The Java tutorials for rabbitmq
> were easy, but the c++ client is really hard to build.

By "c++ client" are you referring to
https://github.com/alanxz/SimpleAmqpClient ? What specifically did you
find hard about the build process? Alan, the author, is on this mailing
list and I am sure he'd welcome "constructive criticism" :)

> I watched a couple of amqp videos and it is always mentioned that
> amqp is a wire protocol just like http, and that that is a big plus
> (I agree). So why is there a need for a rabbitmq cpp client and a
> Apache qpid client etc. in the first place? Why isn't there only one
> generic amqp cpp client?

Two reasons:

- there are several versions of the protocol; different clients support
different versions

- there are many ways of exposing AMQP functionality to applications;
different clients provide different API

Regards,

Matthias
_______________________________________________
rabbitmq-discuss mailing list
[hidden email]
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Reply | Threaded
Open this post in threaded view
|

Re: rabbitmq and cpp

Full Name
In reply to this post by Full Name
Hi Matthias,

thx for the answer!


-----Original Message-----
From: "Matthias Radestock" [[hidden email]]
Date: 05/16/2014 09:49 AM
To: "Discussions about RabbitMQ" <[hidden email]>
CC: [hidden email]
Subject: Re: [rabbitmq-discuss] rabbitmq and cpp

On 12/05/14 02:05, Full Name wrote:
>> I am new to RabbitMQ and to AMQP in general. I didn't find a
>> forum/mailing list for general AMQP questions. Just a forum at
>> amqp.org, but that is kind of dead. I want to exchange messages
>> between Java and c++ applications. The Java tutorials for rabbitmq
>> were easy, but the c++ client is really hard to build.

>By "c++ client" are you referring to
>https://github.com/alanxz/SimpleAmqpClient ? What specifically did you
>find hard about the build process? Alan, the author, is on this mailing
>list and I am sure he'd welcome "constructive criticism" :)

Yes, I mean SimpleAmqpClient. But let me make it very clear that I do not wanna rant about that build process.
It is just hard as a "getting started experience" compared to the Java examples, which were ready to run after a few minutes.


>> I watched a couple of amqp videos and it is always mentioned that
>> amqp is a wire protocol just like http, and that that is a big plus
>> (I agree). So why is there a need for a rabbitmq cpp client and a
>> Apache qpid client etc. in the first place? Why isn't there only one
>> generic amqp cpp client?

>Two reasons:

>- there are several versions of the protocol; different clients support
>different versions

>- there are many ways of exposing AMQP functionality to applications;
>different clients provide different API

My thinking goes as follows:

AMQP is a wire protocoll like http.
There are several http clients for sure. But there is not one http client for Apache web server, a different http client for nginx and a third one for Microsoft Internet Information Services (IIS).
So why there are clients for RabbitMQ and Apache qpid and so forth, and not a generic C++ client for AMQP 1.0?

regards
Sven
_______________________________________________
rabbitmq-discuss mailing list
[hidden email]
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Reply | Threaded
Open this post in threaded view
|

Re: rabbitmq and cpp

Matthias Radestock-3
On 20/05/14 00:01, Full Name wrote:
> My thinking goes as follows:
>
> AMQP is a wire protocoll like http. There are several http clients
> for sure. But there is not one http client for Apache web server, a
> different http client for nginx and a third one for Microsoft
> Internet Information Services (IIS). So why there are clients for
> RabbitMQ and Apache qpid and so forth, and not a generic C++ client
> for AMQP 1.0?

Most AMQP clients are not specific to a broker but to a version of the
protocol.

Matthias.
_______________________________________________
rabbitmq-discuss mailing list
[hidden email]
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Reply | Threaded
Open this post in threaded view
|

Re: rabbitmq and cpp

Gordon Sim-2
In reply to this post by Full Name
On 05/20/2014 12:01 AM, Full Name wrote:
> why there are clients for RabbitMQ and Apache qpid and so forth, and not a generic C++ client for AMQP 1.0?

As Matthias pointed out in his earlier response, different APIs often
reflect different stylistic choices. However a given AMQP 1.0 client
should work against any broker supporting that protocol version.

So for example the Qpid project has a qpid::messaging c++ client and a
Qpid Proton Messenger client (in c but easily usable from c++), offering
two different styles of API. However both support AMQP 1.0 and therefore
work against RabbitMQ (with the AMQP 1.0 plugin enabled) or indeed any
other 1.0 compliant server.

There are however older versions of the AMQP protocol still in use
(there was a fair bit of 'churn' in the evolution, to put it mildly) and
some clients will be tied to one of these and would not work against a
broker that didn't support the same version.

What would be nice, though it may be hard to achieve, would be an API
for which multiple implementations existed, e.g. for different
protocols. Java has JMS, but there isn't really anything equivalent in
other programming languages.
_______________________________________________
rabbitmq-discuss mailing list
[hidden email]
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss