Tuesday, October 26, 2010

ActiveMQ C API under development

Recently I started working on a C API for ActiveMQ.  The idea is to wrap the ActiveMQ-CPP library in a C accessible API in order to leverage all the hard work that has gone into making the C++ client.  I've made some good progress so far, I've wrapped all the CMS API's for ConnectionFactory, Connection, Session, Producer and Consumer.  I'm part way through mapping the CMS Message APIs into C APIs.

We still don't have any unit tests written for it but there's some sample code that compiles, and runs (at least it did). 

It would be great if some C developers out there wanted to chip in and help out on this as my C skills are pretty rusty.  There's still a lot to be done in the wrappers like better managing error conditions and reporting the errors in a meaningful way. 

You can download the source from the Apache SVN here.

8 comments:

e.semog said...

So, what will the API package be called? Can't use CMS, since it's taken. Hmmmm....I don't have any suggestions yet for you.

Tim said...

Well its really just a thin wrapper around CMS, so not sure it needs a catchy name :)

Robert said...

What is the status of activemq-c? This could fit my needs and looks like a better alternative to the apparently dormant OpenWire C Client .

Tim said...

Well its somewhat functional, there's a couple of examples that build and run. We need some users to step up and contribute to the project in order for it to be completed any time soon.

Steve said...

I am interested in developing an ActiveMQ C client. When Tim says the activemq-c library is somewhat functional, is that for both the STOMP and Openwire protocols? What is the status? Is producing a production quality C client in a couple of months possible? Windows, UNIX, and z/OS?

Tim said...

You can find a nice C API wrapper around ActiveMQ-CPP on github: git://github.com/fusesource/fusemq-c.git

There's no development right now on a pure C ActiveMQ client, that'd require a large amount of work.

ASD said...

I'm looking for pure C active MQ I tried to use openWire but after complicated compilation it doesn't work do you have any ideas ?

Tim said...

There is no pure C client for ActiveMQ using openwire, but there are other C APIs such as STOMP or AMQP 1.0 that would work just fine. Check out the QPid project for C client code that uses AMQP v1.0.

Alternatively you can contribute a C based client for OpenWire to the ActiveMQ porject.