Qpid provides the most complete and compatible implementation of AMQP and is the most aggressive in implementing the latest version of the specification. Qpid can be downloaded here.

There are two brokers:

  • C++ with support for AMQP 0-10.
  • Java with support for AMQP 0-8, 0-9, and 0-10.

There are client libraries for C++, Java (JMS), .Net (written in C#), python and ruby.

  • All clients support 0-10 and interoperate with both brokers as of Qpid 0.6.
  • The JMS client supports 0-8, 0-9 and 0-10 and interoperates with both brokers.
  • The python and ruby clients will also support all versions, but the API is dynamically driven by the specification used and so differs between versions. To work with the C++ broker you must use 0-10. To work with the Java broker you can use any version as of Qpid 0.6, or prior to that you can use 0-8 or 0-9.
  • There is also a WCF channel, which wraps the 0-10 native C++ client library.

QMF Management is supported in Ruby, Python, C++, and can be translated to Java JMX & WS-DM via the QMan management tool.

AMQP Compatibility of Qpid releases:

Qpid implements the AMQP Specification, and as the specification has progressed Qpid is keeping up with the updates. This means that different Qpid versions support different versions of AMQP. Here is a simple guide on what to use.

Here is a matrix that describes the different versions supported by each release
Y = supported
N = unsupported
IP = in progress
P = planned

Component Spec                      
    M2.1 M3 M4 0.5 0.6 0.8 0.10 0.12 0.14 0.16 0.18
Java client 0-10   Y Y Y Y Y Y Y Y Y Y
  0-9 Y Y Y Y Y Y Y Y Y Y Y
  0-8 Y Y Y Y Y Y Y Y Y Y Y
Java broker 0-10         Y Y Y Y Y Y Y
  0-9 Y Y Y Y Y Y Y Y Y Y Y
  0-8 Y Y Y Y Y Y Y Y Y Y Y
C++ client/broker 0-10   Y Y Y Y Y Y Y Y Y Y
  0-9 Y                  
Python client 0-10   Y Y Y Y Y Y Y Y Y Y
  0-9 Y Y Y Y Y Y Y Y Y Y Y
  0-8 Y Y Y Y Y Y Y Y Y Y Y
WCF channel 0-10         Y Y Y Y Y Y Y
Ruby client 0-10     Y Y Y Y          
  0-8 Y Y Y Y Y Y          
C# client 0-10     Y Y Y Y          
  0-8 Y Y Y Y Y Y          

Interop table by AMQP specification version

Above table represented in another format.

Component Release 0-8 0-9 0-10
Java client M3, M4, 0.5, 0.6, 0.8, 0.10, 0.12, 0.14, 0.16, 0.18 Y Y Y
Java client M2.1 Y Y N
Java broker 0.6, 0.8, 0.10, 0.12, 0.14, 0.16, 0.18 Y Y Y
Java broker M3, M4, 0.5 Y Y N
Java broker M2.1 Y Y N
C++ client/broker M3, M4, 0.5, 0.6, 0.8, 0.10, 0.12, 0.14, 0.16, 0.18 N N Y
C++ client/broker M2.1 N Y N
Python client M3, M4, 0.5, 0.6, 0.8, 0.10, 0.12, 0.14, 0.16, 0.18 Y Y Y
Python client M2.1 Y Y N
WCF channel 0.6, 0.8, 0.10, 0.12, 0.14, 0.16, 0.18 N N Y
Ruby client M4, 0.5, 0.6, 0.8 Y Y Y
Ruby client M3 Y Y N
C# client 0-10 M4, 0.5, 0.6, 0.8 N N Y
C# client 0-8 M3, M4, 0.5, 0.6, 0.8 Y N N