James Bond
James Bond

Reputation: 7913

Is there any opensource high-performance IPC-like msg bus library in c++?

In my current project, I have a slightly distributed architecture, i.e., several executables collaborate with each other to get things done. To make things easier, i hope i could have a reliable 'backbone' message bus: when an executable hooks up to the msg bus, it can receive callback when new msg arrives. Similarly, it can publish new message to the bus.

I know some companies provide off-the-shelf solutions like this, however, is there any free ones in the OSS?

Upvotes: 4

Views: 4876

Answers (4)

Eric Anderson
Eric Anderson

Reputation: 1966

Similar to the AMQP idea above, you might want to look at ZeroMQ (http://www.zeromq.org/). I haven't used it personally, but I know people who like it a lot.

Upvotes: 0

Georg Fritzsche
Georg Fritzsche

Reputation: 99074

Besides the given answers, Boost.Interprocess should be a portable and performant alternative.
If you're really looking for high performance though, scrap the idea of using the IPC library for in-process-communication too - there will be performance penalties.

Upvotes: 1

Frerich Raabe
Frerich Raabe

Reputation: 94439

If you don't need Windows support, and your processes aren't spread over different computers, I'd definately give D-Bus a look.

It's written in C and features (according to the web page) bindings for "Qt, GLib, Java, C#, Python, etc.)".

The list of projects using D-Bus is quite impressive, too.

Upvotes: 4

jldupont
jldupont

Reputation: 96836

Have you given a thought to using AMQP based like RabbitMQ?

There are some libraries for C binding you could "dress-up" for C++.

RabbitMQ is a complete and highly reliable enterprise messaging system based on the emerging AMQP standard. It is licensed under the open source Mozilla Public License and has a platform-neutral distribution, plus platform-specific packages and bundles for easy installation.


Of course, if you require something "less-distributed" you could go straight to using DBus.

Upvotes: 3

Related Questions