Fast, mature, robust AMQP for your apps

Download OpenAMQ now

Download, build, and run the software that Wall Street winners prefer. It takes just a few minutes. Zero configuration except a new password. Superb performance out of the box. Choose from two major versions:

Your choice: get free, fast support online here, or get professional support from iMatix.

Release notes | Quick start | All packages | Documentation | Questions

AMQP is a new wire-level protocol for messaging. It makes it easy to get applications or pieces of applications to talk together across a LAN. Applications send messages to exchanges, which route them into queues, which deliver them to other applications. It sounds complex but it's simple and it makes life easy. AMQP uses a message broker to do the hard work. This is a server app that usually runs on its own box.

OpenAMQ is a message broker plus client libraries for C/C++ and JMS. OpenAMQ gives you a simple and powerful C API called WireAPI as well as tools like PAL for easy scripting. Other great AMQP products like RabbitMQ can talk to OpenAMQ from other programming languages. Implements AMQP/0.9.

Cost: OpenAMQ is open source and free to use at no charge. To install OpenAMQ takes only a few minutes. It comes pre-tuned and runs almost perfectly out of the box. To learn to use OpenAMQ will take you a day or so. To use WireAPI in your applications will take you a day or two. A real OpenAMQ development will take you some weeks.

User guides

  • Introduction to OpenAMQ: This document is an introduction to the concept of business messaging in general, and to OpenAMQ in particular. It is intended for new OpenAMQ users who wish to understand the problems that OpenAMQ solves, and how OpenAMQ can be useful in software applications. (+2 "2")
  • Basic use of OpenAMQ: This document explains how to get OpenAMQ running on your system. It explains how to download the software, how to unpack and build it (if you are using a source package), and how to run basic tests on the resulting software. (+2 "4")
  • Advanced use of OpenAMQ: This guide is for people who need to configure and manage OpenAMQ servers. We explain how to configure and tune an OpenAMQ server, covering these topics: logging, monitoring, high-availability failover, and joining OpenAMQ servers into wide-area federations. (+2 "9")

» More...


  • Draft 2 of RestMS specs now online (january 20, 2008) iMatix has published the second draft of the RestMS specifications today on RestMS offers web applications simple, efficient messaging that interoperates with AMQP networks. (+0 "0")
  • iMatix publishes Digest-AMQP specs (january 9, 2008) iMatix has published the first draft of the Digest-AMQP specifications on Digest-AMQP provides a way to integrate WWW servers and LDAP servers over an AMQP network. (+0 "0")

» Submit news | Older stories

Latest messages on openamq-dev

{"module":"feed\/FeedModule","params":{"src":"http:\/\/\/pipermail\/openamq-dev\/openamq-dev.rss","limit":"5","module_body":"* **%%linked_title%%**: %%short%%"}}

» Discuss | Older threads

Recent comments

Hi, I wrote a simple publisher code based on im_sender.c using pthreads which simply sends...
(by Srinik 16 Nov 2012 23:30, posts: 1)
Check the 'c' script used for compilation, it has explanations at the start of how to do this.
(by pieterh 19 Oct 2012 09:46, posts: 18)
Is there a way to link extra libraries to the app compiled with openamq WireAPI library ?...
(by Srinik 17 Oct 2012 19:07, posts: 18)
The Session properties are listed as … reply_code (integer) - error value reported by...
(by Kevenm 07 Sep 2011 13:12, posts: 18)
I usually dont take time to ever make comments on a web site but I have to say I would truly be...
(by (account deleted) 28 Jan 2011 15:09, posts: 4)
I've been looking over the source code and thinking that it might make sense to create a...
(by Highjinks 19 Jun 2010 19:54, posts: 9)

Open issues

89 - multi-threaded client connection failure: A multi-thread aware application is not able to open a connection with an openamq server and the connection request times out. I might be missing some fundamental configuration which I am unable to figure out.

Surprisingly a single process making an open-amqp calls is possible to publish the messages even though the ampq calls internally is multi-threaded.

Could anyone help me out with that ? The code is given below.

Sorry for posting it twice. The issues sections seems to be a relevant place to post it.

SriniK (17 Nov 2012 16:28) (+0 "0")

87 - Zyre returns incomplete XML: After starting using Zyre a bit more seriously on windows, GET on pipe url returns incomplete XML. (26 Apr 2010 08:15) (+0 "3")

86 - SFL 'random(num)' macro is wrong in sfl.h: Put here one paragraph that summarizes the issue. Do not delete the line containing '====', it must be there. (31 Mar 2010 09:23) (+0 "0")

85 - Zyre does not start on Solaris: Zyre fails shortly after startup with an APR assertion failure. This is probably due to the outdated APR version 1.3.3 that ships with OpenAMQ 1.4c0 (23 Mar 2010 01:29) (+0 "1")

84 - OpenAMQ JMS - AMQTopic constructor use HEADER name and class instead of TOPIC: When using AMQTopic form openamq-jms project, the messages sent to the topic are received by
listener on another topic. (28 Jan 2010 17:04) (+0 "0")

83 - WireAPI: How to 'override' signal handlers?: How to 'override' (i.e. install your own) process signal handlers that are provided by WireAPI? (14 Jan 2010 17:33) (+0 "0")

82 - Opf Classes Cannot Accept Default Values With Characte: When creating an OPF file with default values containing the '%' character the generated code is not valid. (06 Jan 2010 09:34) (+0 "1")

81 - AMQP Topic Exhange Routing: A queue is bound to a topic exchange with a wildcard, prior to a topic being created. Subsequently another queue binds to the topic exchange without a wildcard. Publishing to the topic generates a hit only on the non-wildcard binding. If the binding order is reversed (i.e. the wildcard binding occurs after the topic is created), the message is routed to both queues as expected. Is this behavior correct? (29 Dec 2009 00:21) (+0 "0")

80 - OpenAMQ reports malformed frame on 0-9-1 queue.unbind: OpenAMQ doesn't appear to decode correctly a queue.unbind method frame, reporting "502 malformed frame for 'queue.unbind' method" (20 Nov 2009 12:33) (+0 "0")

79 - AMQ Server crashing if subscribe topic is set as #.#: This is an issue that I faced while I used the WireAPI to connect and read from teh AMQ server. Giving a routing key of value "#.#" crashes the AMQ server. (30 Oct 2009 06:11) (+0 "1")

» How to submit an issue | All issues

Most recent







» Contribute | All contributions