Menu Search

Components

The Qpid project offers two kinds of components, messaging APIs for building AMQP applications, and messaging servers for deploying AMQP networks. You can use them together to build robust distributed applications.

Messaging APIs give your application a tool for efficient, high-level interprocess communication.

Qpid offers three messaging APIs. Qpid Proton is a reactive API with full-spectrum AMQP control. In addition to being a messaging API, Qpid Proton is used by other Qpid components to implement AMQP 1.0 protocol support. Qpid JMS is an AMQP-fluent implementation of the widely used Java Message Service API. The Qpid Messaging API is a connection-oriented API that supports many languages.

The term "client" is often used to refer to messaging APIs, but some messaging APIs, such as Qpid Proton, can be used to implement any kind of messaging component, including clients, servers, bridges, and proxies.

Messaging servers are message-transfer intermediaries that provide additional behaviors such as store-and-forward for improved reliability.

The Qpid message brokers are full-featured message-oriented middleware brokers. They offer specialized queueing behaviors, message persistence, and manageability. Qpid offers pure-Java and native-code implementations, the Broker-J and the C++ broker.

Dispatch router is a new kind of messaging server. It allows you to build redundant router networks connecting clients, brokers, and standalone services.

Messaging APIs

Messaging servers

Messaging tools

Compatibility

Component Languages Platforms AMQP versions
C++ broker - Linux, Windows 1.0, 0-10
Dispatch router - Linux 1.0
Broker-J - JVM 1.0, 0-10, 0-9-1, 0-9, 0-8
Qpid JMS Java JVM 1.0, 0-10, 0-9-1, 0-9, 0-8
Qpid Messaging API C++, Python Linux, Windows 1.0, 0-10
Qpid Proton C, C++, Java, Python, Ruby JVM, Linux, Windows 1.0
Qpid Interop Test - Linux 1.0

Any Qpid components that share an AMQP version can interoperate. For instance, the brokers are implemented in C++ and Java respectively, but they do not require C++ or JMS clients for communication.